34. SELECT sp.sessionid, sp.level, sp.posttime, r.room, r.speaker
INTO
FROM satpost sp TIMESTAMP BY sp.posttime
JOIN room r ON r.sessionid
35. WITH RoomedPost AS (
SELECT sp.sessionid, sp.level, sp.posttime, r.room, r.speaker
INTO satout
FROM satpost sp TIMESTAMP BY sp.posttime
JOIN room r ON r.sessionid
)
SELECT * INTO throutput FROM RoomedPost
SELECT … FROM RoomedPost
…
45. [{
"ThingeeId": "Trip Guitor",
"places": [
{“id”:“新橋駅","longitude": 139.758332,"latitude":35.666193},
{“id”:“de:code会場","longitude": 139.747072,"latitude": 35.655435}
]
}]
{"id":"Trip Guitor","latitude":35.665974174784,"longitude":139.75797406074133,"trackingTime":"2017-05…”}
{“id”:”Trip Guitor”,”latitude”:35.665864762176,”longitude”:139.757795099112,”trackingTime”:”2017-05…"}
…………
WITH TP AS(
SELECT
CreatePoint(tp.latitude, tp.longitude) as tPos, tp.id as thingId, tp.trackingTime,
lps.ArrayValue.id as placeId,
lps.ArrayValue.latitude as rLatitude, lps.ArrayValue.longitude as rLongitude
FROM TrackingPoint tp TIMESTAMP BY trackingTime
JOIN Reference R on Input.id = R.ThingeeId
CROSS APPLY GetArrayElements(R.places) as lplaces
)
SELECT * INTO Output FROM TP
WHERE ST_DISTANCE(tPosition,CreatePoint(rLatitude,rLongitude)) < 50
48. {"id":"Trip Guitor","latitude":35.66597,"longitude":139.75797,"trackingTime":"2017-05-16T19:28:56.5904798+09:
{"id":"Trip Guitor","latitude":35.66586,"longitude":139.75779,"trackingTime":"2017-05-16T19:28:57.7937625+09:
{"id":"Trip Guitor","latitude":35.66575,"longitude":139.75761,"trackingTime":"2017-05-16T19:28:58.7855079+09:
{"id":"Trip Guitor","latitude":35.66564,"longitude":139.75743,"trackingTime":"2017-05-16T19:28:59.907668+09:0
{"id":"Trip Guitor","latitude":35.66553,"longitude":139.75725,"trackingTime":"2017-05-16T19:29:00.9548203+09:
{"id":"Trip Guitor","latitude":35.66542,"longitude":139.75707,"trackingTime":"2017-05-16T19:29:02.1924219+09:
{"id":"Trip Guitor","latitude":35.66531,"longitude":139.75690,"trackingTime":"2017-05-16T19:29:03.1922725+09:
{"id":"Trip Guitor","latitude":35.66520,"longitude":139.75672,"trackingTime":"2017-05-16T19:29:04.1890873+09:
{"id":"Trip Guitor","latitude":35.66509,"longitude":139.75654,"trackingTime":"2017-05-16T19:29:05.1928868+09:
{"id":"Trip Guitor","latitude":35.66498,"longitude":139.75636,"trackingTime":"2017-05-16T19:29:06.1909477+09:
WITH TP AS(
SELECT
CreatePoint(Input.latitude, Input.longitude) as position, Input.id as id, Input.trackingTime,
CreatePoint(
LAG(latitude,1) OVER (PARTITION BY id LIMIT DURATION(second,10)),
LAG(longitude,1) OVER (PARTITION BY id LIMIT DURATION(second,10)) ) as lastPosition
FROM Input TIMESTAMP BY trackingTime
)
-- calculate distance
SELECT id, trackingTime, position, ST_DISTANCE(position, lastPosition) as delta
INTO Output
FROM TP
49. Aggregate
• AVG
• COUNT
• Collect
• CollectTop
• MAX
• MIN
• Percentile_Cont
• Percentile_Desc
• STDEV
• STDEVP
• SUM
• TopOne
• VAR
• VARP
Analytics/Array/Record
• Analytics
• ISFIRST
• LAG
• LAST
• Array
• GetArrayLength
• GetArrayElement
• GetArrayElements
• Record
• GetRecordProperties
• GetRecordPropertyValue
Scalar
• Conversion Functions
• CAST,GetType,…
• Date and Time Functions
• DATEADD,DATEDIFF,…
• Mathematical Functions
• ABS,EXP,POWER,…
• String Functions
• LEN,CONCAT,…
Others
• Input Metadata
• GetMetadataPropertyValue
• Geo Spatial
• CreateLineString
• CreatePoint
• CreatePolygon
• ST_DISTANCE
• ST_OVERLAPS
• ST_INTERSECTS
• ST_WITHIN