blob: 686d72a3cdedd3aca5ecfc369da6a74e7426b08d [file] [log] [blame]
SET hive.auto.convert.join.noconditionaltask=true;
SET hive.auto.convert.join.noconditionaltask.size=1431655765;
SET hive.vectorized.execution.enabled=false;
CREATE TABLE topnkey_windowing (tw_a string, tw_b string, tw_v1 double, tw_v2 double);
INSERT INTO topnkey_windowing VALUES
(NULL, NULL, NULL, NULL),
(NULL, 'D', 109, 9),
('A', 'D', 109, 9),
('A', 'D', 104, 9),
('A', 'D', 109, 9),
('A', 'C', 109, 9),
('A', 'C', 103, 9),
(NULL, NULL, NULL, NULL),
(NULL, 'D', 109, 9),
('A', 'D', 109, 9),
('A', 'D', 101, 9),
('A', 'D', 101, 9),
('A', 'D', 114, 9),
('A', 'D', 120, 9),
('B', 'E', 105, 9),
('B', 'E', 106, 9),
('B', 'E', 106, 9),
('B', 'E', NULL, NULL),
('B', 'E', 106, 9),
('A', 'C', 107, 9),
('B', 'E', 108, 9),
('A', 'C', 102, 9),
('B', 'E', 110, 9),
(NULL, NULL, NULL, NULL),
(NULL, NULL, 109, 9),
('A', 'D', 109, 9);
SET hive.optimize.topnkey=true;
EXPLAIN
SELECT tw_a, ranking
FROM (
SELECT tw_a AS tw_a,
rank() OVER (PARTITION BY tw_a ORDER BY tw_v1 NULLS FIRST) AS ranking
FROM topnkey_windowing) tmp1
WHERE ranking <= 3;
SELECT tw_a, ranking
FROM (
SELECT tw_a AS tw_a,
rank() OVER (PARTITION BY tw_a ORDER BY tw_v1 NULLS FIRST) AS ranking
FROM topnkey_windowing) tmp1
WHERE ranking <= 3;
SET hive.optimize.topnkey=false;
SELECT tw_a, ranking
FROM (
SELECT tw_a AS tw_a,
rank() OVER (PARTITION BY tw_a ORDER BY tw_v1 NULLS FIRST) AS ranking
FROM topnkey_windowing) tmp1
WHERE ranking <= 3;
SET hive.optimize.topnkey=true;
EXPLAIN
SELECT tw_a, ranking
FROM (
SELECT tw_a AS tw_a,
rank() OVER (PARTITION BY tw_a ORDER BY tw_v1 ASC NULLS LAST, tw_v2 DESC NULLS FIRST) AS ranking
FROM topnkey_windowing) tmp1
WHERE ranking <= 3;
SELECT tw_a, ranking
FROM (
SELECT tw_a AS tw_a,
rank() OVER (PARTITION BY tw_a ORDER BY tw_v1 ASC NULLS LAST, tw_v2 DESC NULLS FIRST) AS ranking
FROM topnkey_windowing) tmp1
WHERE ranking <= 3;
SET hive.optimize.topnkey=false;
SELECT tw_a, ranking
FROM (
SELECT tw_a AS tw_a,
rank() OVER (PARTITION BY tw_a ORDER BY tw_v1 ASC NULLS LAST, tw_v2 DESC NULLS FIRST) AS ranking
FROM topnkey_windowing) tmp1
WHERE ranking <= 3;
SET hive.optimize.topnkey=true;
EXPLAIN
SELECT tw_a, ranking
FROM (
SELECT tw_a AS tw_a,
rank() OVER (PARTITION BY tw_a, tw_b ORDER BY tw_v1) AS ranking
FROM topnkey_windowing) tmp1
WHERE ranking <= 3;
SELECT tw_a, ranking
FROM (
SELECT tw_a AS tw_a,
rank() OVER (PARTITION BY tw_a, tw_b ORDER BY tw_v1) AS ranking
FROM topnkey_windowing) tmp1
WHERE ranking <= 3;
SET hive.optimize.topnkey=false;
SELECT tw_a, ranking
FROM (
SELECT tw_a AS tw_a,
rank() OVER (PARTITION BY tw_a, tw_b ORDER BY tw_v1) AS ranking
FROM topnkey_windowing) tmp1
WHERE ranking <= 3;
DROP TABLE topnkey_windowing;