WITH (Common Table Expression)
Last updated
WITH
c1 AS (SELECT pageid, viewtime FROM pageviews),
c2 AS (SELECT NOW() AS proc_time, * FROM c1)
SELECT * FROM c2;WITH
c1 AS (SELECT * FROM pageviews WHERE pageid = 'Page_6'),
c2 AS (
SELECT userid, count(interests) AS interest_count
FROM users
GROUP BY userid)
SELECT
p.userid AS pvid,
u.userid AS uid,
p.pageid,
u.interest_count AS interest_count
FROM
c1 p
JOIN
c2 u
ON u.userid = p.userid;WITH
c1 AS (
SELECT
viewtime,
CAST(SUBSTRING(pageid FROM 6) AS INTEGER) AS pid,
CAST(SUBSTRING(userid FROM 6) AS INTEGER) AS uid
FROM pageviews)
SELECT
pl.uid AS lid,
pr.uid AS rid,
pl.pid,
pr.viewtime AS viewtime
FROM
c1 pl
JOIN
c1 pr
WITHIN 1 MINUTE
ON pr.uid = pl.uid
WHERE pl.uid != 5;CREATE STREAM trips_delay_increasing AS
WITH
trip_updates AS (
SELECT
trip,
"stopTimeUpdate",
vehicle,
CAST(FROM_UNIXTIME("timestamp") AS TIMESTAMP) AS ts,
"timestamp" AS epoch_secs,
delay
FROM
nyc_bus_trip_updates)
SELECT
trip,
vehicle,
CAST(
FROM_UNIXTIME((start_epoch_secs + end_epoch_secs) / 2)
AS TIMESTAMP
) AS avg_ts
FROM trip_updates
MATCH_RECOGNIZE(
PARTITION BY trip
ORDER BY "ts"
MEASURES
C.row_timestamp AS row_timestamp,
C.row_key AS row_key,
C.row_metadata AS row_metadata,
C.vehicle AS vehicle,
A.epoch_secs AS start_epoch_secs,
C.epoch_secs AS end_epoch_secs
ONE ROW PER MATCH
AFTER MATCH SKIP TO LAST C
PATTERN (A B C)
DEFINE
A AS delay > 0,
B AS delay > A.delay + 30,
C AS delay > B.delay + 30
) AS MR WITH ('timestamp'='ts');