mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-16 11:22:12 +00:00
33 lines
1.1 KiB
SQL
33 lines
1.1 KiB
SQL
CREATE TEMPORARY TABLE sessions (date DateTime, visitorId String, sessionId String);
|
|
CREATE TEMPORARY TABLE orders (date DateTime, visitorId String, orderId String);
|
|
|
|
INSERT INTO sessions VALUES ('2018-01-01 00:00:00', 'v1', 's1'), ('2018-01-02 00:00:00', 'v1', 's2'), ('2018-01-03 00:00:00', 'v2', 's3'), ('2018-01-04 00:00:00', 'v1', 's4'), ('2018-01-05 00:00:00', 'v2', 's5'), ('2018-01-06 00:00:00', 'v3', 's6');
|
|
INSERT INTO orders VALUES ('2018-01-03 00:00:00', 'v1', 'o1'), ('2018-01-05 00:00:00', 'v1', 'o2'), ('2018-01-06 00:00:00', 'v2', 'o3');
|
|
|
|
SELECT
|
|
visitorId,
|
|
orderId,
|
|
groupUniqArray(sessionId)
|
|
FROM sessions
|
|
ASOF INNER JOIN orders ON (sessions.visitorId = orders.visitorId) AND (sessions.date <= orders.date)
|
|
GROUP BY
|
|
visitorId,
|
|
orderId
|
|
ORDER BY
|
|
visitorId ASC,
|
|
orderId ASC;
|
|
|
|
SELECT
|
|
visitorId,
|
|
orderId,
|
|
groupUniqArray(sessionId)
|
|
FROM sessions
|
|
ASOF INNER JOIN orders ON (sessions.visitorId = orders.visitorId) AND (sessions.date <= orders.date)
|
|
GROUP BY
|
|
visitorId,
|
|
orderId
|
|
ORDER BY
|
|
visitorId ASC,
|
|
orderId ASC
|
|
SETTINGS join_algorithm = 'full_sorting_merge';
|