Skip to content

Commit 078dc18

Browse files
nuno-fariahknlof
authored andcommitted
test: Add logic tests for string_agg with order (apache#17033)
1 parent d6ec999 commit 078dc18

File tree

1 file changed

+78
-0
lines changed

1 file changed

+78
-0
lines changed

datafusion/sqllogictest/test_files/aggregate.slt

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6078,6 +6078,84 @@ GROUP BY dummy
60786078
----
60796079
text1
60806080

6081+
6082+
# Test string_agg with ORDER BY clasuses (issue #17011)
6083+
statement ok
6084+
create table t (k varchar, v int);
6085+
6086+
statement ok
6087+
insert into t values ('a', 2), ('b', 3), ('c', 1), ('d', null);
6088+
6089+
query T
6090+
select string_agg(k, ',' order by k) from t;
6091+
----
6092+
a,b,c,d
6093+
6094+
query T
6095+
select string_agg(k, ',' order by k desc) from t;
6096+
----
6097+
d,c,b,a
6098+
6099+
query T
6100+
select string_agg(k, ',' order by v) from t;
6101+
----
6102+
c,a,b,d
6103+
6104+
query T
6105+
select string_agg(k, ',' order by v nulls first) from t;
6106+
----
6107+
d,c,a,b
6108+
6109+
query T
6110+
select string_agg(k, ',' order by v desc) from t;
6111+
----
6112+
d,b,a,c
6113+
6114+
query T
6115+
select string_agg(k, ',' order by v desc nulls last) from t;
6116+
----
6117+
b,a,c,d
6118+
6119+
query T
6120+
-- odd indexes should appear first, ties solved by v
6121+
select string_agg(k, ',' order by v % 2 == 0, v) from t;
6122+
----
6123+
c,b,a,d
6124+
6125+
query T
6126+
-- odd indexes should appear first, ties solved by v desc
6127+
select string_agg(k, ',' order by v % 2 == 0, v desc) from t;
6128+
----
6129+
b,c,a,d
6130+
6131+
query T
6132+
select string_agg(k, ',' order by
6133+
case
6134+
when k = 'a' then 3
6135+
when k = 'b' then 0
6136+
when k = 'c' then 2
6137+
when k = 'd' then 1
6138+
end)
6139+
from t;
6140+
----
6141+
b,d,c,a
6142+
6143+
query T
6144+
select string_agg(k, ',' order by
6145+
case
6146+
when k = 'a' then 3
6147+
when k = 'b' then 0
6148+
when k = 'c' then 2
6149+
when k = 'd' then 1
6150+
end desc)
6151+
from t;
6152+
----
6153+
a,c,d,b
6154+
6155+
statement ok
6156+
drop table t;
6157+
6158+
60816159
# Tests for aggregating with NaN values
60826160
statement ok
60836161
CREATE TABLE float_table (

0 commit comments

Comments
 (0)