[[case]]
id = "window_row_number"
data = "international_sales.csv"
sql = "SELECT region, amount, ROW_NUMBER() OVER (PARTITION BY region ORDER BY amount DESC) AS rn FROM international_sales ORDER BY region, amount DESC"
[[case]]
id = "win_rank"
data = "null_edges.csv"
sql = "SELECT id, team, RANK() OVER (PARTITION BY team ORDER BY score DESC) AS v FROM null_edges WHERE score IS NOT NULL ORDER BY id"
[[case]]
id = "win_dense_rank"
data = "null_edges.csv"
sql = "SELECT id, team, DENSE_RANK() OVER (PARTITION BY team ORDER BY score DESC) AS v FROM null_edges WHERE score IS NOT NULL ORDER BY id"
[[case]]
id = "win_lag"
data = "null_edges.csv"
sql = "SELECT id, LAG(score) OVER (ORDER BY score, id) AS v FROM null_edges WHERE score IS NOT NULL ORDER BY id"
[[case]]
id = "win_lead"
data = "null_edges.csv"
sql = "SELECT id, LEAD(score) OVER (ORDER BY score, id) AS v FROM null_edges WHERE score IS NOT NULL ORDER BY id"
[[case]]
id = "win_last_value"
data = "null_edges.csv"
sql = "SELECT id, team, LAST_VALUE(score) OVER (PARTITION BY team ORDER BY score DESC, id) AS v FROM null_edges WHERE score IS NOT NULL ORDER BY id"
[[case]]
id = "win_sum_partition_ordered"
data = "null_edges.csv"
sql = "SELECT id, team, SUM(score) OVER (PARTITION BY team ORDER BY score DESC, id) AS v FROM null_edges WHERE score IS NOT NULL ORDER BY id"
[[case]]
id = "win_avg_over_empty_spec"
data = "null_edges.csv"
sql = "SELECT id, AVG(score) OVER () AS v FROM null_edges WHERE score IS NOT NULL ORDER BY id"
[[case]]
id = "win_minmax_over"
data = "null_edges.csv"
sql = "SELECT id, MIN(score) OVER (PARTITION BY team) AS lo, MAX(score) OVER (PARTITION BY team) AS hi FROM null_edges WHERE score IS NOT NULL ORDER BY id"
[[case]]
id = "win_rows_1_preceding"
data = "null_edges.csv"
sql = "SELECT id, SUM(score) OVER (ORDER BY score, id ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS v FROM null_edges WHERE score IS NOT NULL ORDER BY id"
[[case]]
id = "win_rows_unbounded_preceding"
data = "null_edges.csv"
sql = "SELECT id, SUM(score) OVER (ORDER BY score, id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS v FROM null_edges WHERE score IS NOT NULL ORDER BY id"
[[case]]
id = "win_rows_unbounded_following"
data = "null_edges.csv"
sql = "SELECT id, SUM(score) OVER (ORDER BY score, id ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) AS v FROM null_edges WHERE score IS NOT NULL ORDER BY id"
[[case]]
id = "win_partition_null_key"
data = "null_edges.csv"
sql = "SELECT id, team, COUNT(*) OVER (PARTITION BY team) AS v FROM null_edges ORDER BY id"
[[case]]
id = "win_multi_partition_key"
data = "null_edges.csv"
sql = "SELECT id, COUNT(*) OVER (PARTITION BY team, score) AS v FROM null_edges WHERE score IS NOT NULL ORDER BY id"
[[case]]
id = "win_over_nulls"
data = "null_edges.csv"
sql = "SELECT id, score, LAG(score) OVER (ORDER BY id) AS v FROM null_edges ORDER BY id"
[[case]]
id = "win_count_over_filtered"
data = "null_edges.csv"
sql = "SELECT id, team, COUNT(*) OVER (PARTITION BY team) AS v FROM null_edges WHERE score IS NOT NULL ORDER BY id"
[[case]]
id = "win_row_number_filtered"
data = "null_edges.csv"
sql = "SELECT id, team, ROW_NUMBER() OVER (PARTITION BY team ORDER BY score DESC, id) AS v FROM null_edges WHERE score IS NOT NULL ORDER BY id"
[[case]]
id = "win_in_derived_table_filtered"
data = "null_edges.csv"
sql = "SELECT id, v FROM (SELECT id, ROW_NUMBER() OVER (ORDER BY score DESC, id) AS v FROM null_edges WHERE score IS NOT NULL) x ORDER BY id"
[[case]]
id = "win_first_value"
data = "null_edges.csv"
sql = "SELECT id, team, FIRST_VALUE(score) OVER (PARTITION BY team ORDER BY score DESC, id) AS v FROM null_edges WHERE score IS NOT NULL ORDER BY id"
[[case]]
id = "win_first_value_unfiltered"
data = "null_edges.csv"
sql = "SELECT id, team, FIRST_VALUE(score) OVER (PARTITION BY team ORDER BY score DESC, id) AS v FROM null_edges ORDER BY id"
expect = "DIFFER"
[[case]]
id = "win_nth_value"
data = "null_edges.csv"
sql = "SELECT id, NTH_VALUE(score, 2) OVER (ORDER BY score DESC, id) AS v FROM null_edges WHERE score IS NOT NULL ORDER BY id"
expect = "DIFFER"
[[case]]
id = "win_ntile"
data = "null_edges.csv"
sql = "SELECT id, NTILE(3) OVER (ORDER BY score DESC, id) AS v FROM null_edges WHERE score IS NOT NULL ORDER BY id"
expect = "DIFFER"
[[case]]
id = "win_percent_rank"
data = "null_edges.csv"
sql = "SELECT id, PERCENT_RANK() OVER (ORDER BY score) AS v FROM null_edges WHERE score IS NOT NULL ORDER BY id"
expect = "DIFFER"
[[case]]
id = "win_cume_dist"
data = "null_edges.csv"
sql = "SELECT id, CUME_DIST() OVER (ORDER BY score) AS v FROM null_edges WHERE score IS NOT NULL ORDER BY id"
expect = "DIFFER"
[[case]]
id = "win_lag_offset_default"
data = "null_edges.csv"
sql = "SELECT id, LAG(score, 2, -1) OVER (ORDER BY score, id) AS v FROM null_edges WHERE score IS NOT NULL ORDER BY id"
expect = "DIFFER"
[[case]]
id = "win_range_frame_with_ties"
data = "null_edges.csv"
sql = "SELECT id, score, SUM(score) OVER (ORDER BY score RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS v FROM null_edges WHERE score IS NOT NULL ORDER BY id"
expect = "DIFFER"
[[case]]
id = "win_default_frame_ordered"
data = "null_edges.csv"
sql = "SELECT id, score, SUM(score) OVER (ORDER BY score) AS v FROM null_edges WHERE score IS NOT NULL ORDER BY id"
expect = "DIFFER"
[[case]]
id = "win_order_by_expression"
data = "null_edges.csv"
sql = "SELECT id, RANK() OVER (ORDER BY score * -1) AS v FROM null_edges WHERE score IS NOT NULL ORDER BY id"
expect = "GAP"
[[case]]
id = "win_over_aggregate_with_group_by"
data = "null_edges.csv"
sql = "SELECT team, SUM(score) AS s, RANK() OVER (ORDER BY SUM(score) DESC) AS v FROM null_edges WHERE score IS NOT NULL GROUP BY team ORDER BY team"
expect = "GAP"
[[case]]
id = "qualify_select_list_alias"
data = "international_sales.csv"
sql = "SELECT region, amount, ROW_NUMBER() OVER (PARTITION BY region ORDER BY amount DESC) AS rn FROM international_sales QUALIFY rn = 1 ORDER BY region"
[[case]]
id = "qualify_row_number"
data = "international_sales.csv"
sql = "SELECT region, amount FROM international_sales QUALIFY ROW_NUMBER() OVER (PARTITION BY region ORDER BY amount DESC) = 1 ORDER BY region"
expect = "GAP"