You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: datafusion/sqllogictest/test_files/pipe_operator.slt
+92Lines changed: 92 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -195,3 +195,95 @@ query TII
195
195
----
196
196
apples 2 123
197
197
bananas 5 NULL
198
+
199
+
# PIVOT pipe
200
+
201
+
statement ok
202
+
CREATE TABLE pipe_test(
203
+
product VARCHAR,
204
+
sales INT,
205
+
quarter VARCHAR,
206
+
year INT
207
+
) AS VALUES
208
+
('Kale', 51, 'Q1', 2020),
209
+
('Kale', 23, 'Q2', 2020),
210
+
('Kale', 45, 'Q3', 2020),
211
+
('Kale', 3, 'Q4', 2020),
212
+
('Kale', 70, 'Q1', 2021),
213
+
('Kale', 85, 'Q2', 2021),
214
+
('Apple', 77, 'Q1', 2020),
215
+
('Apple', 0, 'Q2', 2020),
216
+
('Apple', 1, 'Q1', 2021)
217
+
;
218
+
219
+
query TIIIII rowsort
220
+
SELECT * FROM pipe_test
221
+
|> PIVOT(SUM(sales) FOR quarter IN ('Q1', 'Q2', 'Q3', 'Q4'));
222
+
----
223
+
Apple 2020 77 0 NULL NULL
224
+
Apple 2021 1 NULL NULL NULL
225
+
Kale 2020 51 23 45 3
226
+
Kale 2021 70 85 NULL NULL
227
+
228
+
query TIIII rowsort
229
+
SELECT * FROM pipe_test
230
+
|> select product, sales, quarter
231
+
|> PIVOT(SUM(sales) FOR quarter IN ('Q1', 'Q2', 'Q3', 'Q4'));
232
+
----
233
+
Apple 78 0 NULL NULL
234
+
Kale 121 108 45 3
235
+
236
+
query TIII rowsort
237
+
SELECT * FROM pipe_test
238
+
|> select product, sales, quarter
239
+
|> PIVOT(SUM(sales) FOR quarter IN ('Q1', 'Q2', 'Q3'));
240
+
----
241
+
Apple 78 0 NULL
242
+
Kale 121 108 45
243
+
244
+
query TIIII rowsort
245
+
SELECT * FROM pipe_test
246
+
|> select product, sales, quarter
247
+
|> PIVOT(SUM(sales) as total_sales, count(*) as num_records FOR quarter IN ('Q1', 'Q2'));
248
+
----
249
+
Apple 78 2 0 1
250
+
Kale 121 2 108 2
251
+
252
+
253
+
query TT
254
+
EXPLAIN SELECT * FROM pipe_test
255
+
|> select product, sales, quarter
256
+
|> PIVOT(SUM(sales) as total_sales, count(*) as num_records FOR quarter IN ('Q1', 'Q2'));
257
+
----
258
+
logical_plan
259
+
01)Aggregate: groupBy=[[pipe_test.product]], aggr=[[sum(CAST(CASE pipe_test.quarter WHEN Utf8View("Q1") THEN pipe_test.sales ELSE Int32(NULL) END AS Int64)) AS total_sales_Q1, count(CASE pipe_test.quarter WHEN Utf8View("Q1") THEN Int64(1) ELSE Int64(NULL) END) AS num_records_Q1, sum(CAST(CASE pipe_test.quarter WHEN Utf8View("Q2") THEN pipe_test.sales ELSE Int32(NULL) END AS Int64)) AS total_sales_Q2, count(CASE pipe_test.quarter WHEN Utf8View("Q2") THEN Int64(1) ELSE Int64(NULL) END) AS num_records_Q2]]
|> PIVOT(SUM(sales) as total_sales, count(*) as num_records FOR quarter IN ('Q1' as q1, 'Q2'));
274
+
----
275
+
logical_plan
276
+
01)Aggregate: groupBy=[[pipe_test.product]], aggr=[[sum(CAST(CASE pipe_test.quarter WHEN Utf8View("Q1") THEN pipe_test.sales ELSE Int32(NULL) END AS Int64)) AS total_sales_q1, count(CASE pipe_test.quarter WHEN Utf8View("Q1") THEN Int64(1) ELSE Int64(NULL) END) AS num_records_q1, sum(CAST(CASE pipe_test.quarter WHEN Utf8View("Q2") THEN pipe_test.sales ELSE Int32(NULL) END AS Int64)) AS total_sales_Q2, count(CASE pipe_test.quarter WHEN Utf8View("Q2") THEN Int64(1) ELSE Int64(NULL) END) AS num_records_Q2]]
0 commit comments