51 lines
1.6 KiB
SQL
51 lines
1.6 KiB
SQL
# name: test/sql/window/test_range_optimisation.test
|
|
# description: Range search optimisation stress tests
|
|
# group: [window]
|
|
|
|
statement ok
|
|
CREATE TABLE rides (
|
|
id INTEGER,
|
|
requested_date DATE,
|
|
city VARCHAR,
|
|
wait_time INTEGER
|
|
);
|
|
|
|
statement ok
|
|
INSERT INTO rides VALUES
|
|
(0, '2023-01-05', 'San Francisco', 2925),
|
|
(1, '2023-01-03', 'San Francisco', 755),
|
|
(2, '2023-01-03', 'San Francisco', 2880),
|
|
(3, '2023-01-05', 'San Francisco', 1502),
|
|
(4, '2023-01-03', 'San Francisco', 2900),
|
|
(5, '2023-01-01', 'San Francisco', 1210),
|
|
(6, '2023-01-04', 'San Francisco', 200),
|
|
(7, '2023-01-02', 'San Francisco', 980),
|
|
(8, '2023-01-02', 'San Francisco', 430),
|
|
(9, '2023-01-05', 'San Francisco', 2999),
|
|
(10, '2023-01-01', 'San Francisco', 856),
|
|
(11, '2023-01-02', 'San Francisco', 490),
|
|
(12, '2023-01-02', 'San Francisco', 720),
|
|
|
|
query IIIII
|
|
SELECT "id", "requested_date", "city", "wait_time", min("wait_time") OVER win_3d
|
|
FROM rides
|
|
WINDOW win_3d AS (
|
|
PARTITION BY "city"
|
|
ORDER BY requested_date ASC
|
|
RANGE BETWEEN INTERVAL 3 DAYS PRECEDING AND INTERVAL 1 DAYS PRECEDING)
|
|
ORDER BY "requested_date", "city", "id"
|
|
----
|
|
5 2023-01-01 San Francisco 1210 NULL
|
|
10 2023-01-01 San Francisco 856 NULL
|
|
7 2023-01-02 San Francisco 980 856
|
|
8 2023-01-02 San Francisco 430 856
|
|
11 2023-01-02 San Francisco 490 856
|
|
12 2023-01-02 San Francisco 720 856
|
|
1 2023-01-03 San Francisco 755 430
|
|
2 2023-01-03 San Francisco 2880 430
|
|
4 2023-01-03 San Francisco 2900 430
|
|
6 2023-01-04 San Francisco 200 430
|
|
0 2023-01-05 San Francisco 2925 200
|
|
3 2023-01-05 San Francisco 1502 200
|
|
9 2023-01-05 San Francisco 2999 200
|