should be it
This commit is contained in:
146
external/duckdb/test/sql/aggregate/aggregates/test_histogram.test
vendored
Normal file
146
external/duckdb/test/sql/aggregate/aggregates/test_histogram.test
vendored
Normal file
@@ -0,0 +1,146 @@
|
||||
# name: test/sql/aggregate/aggregates/test_histogram.test
|
||||
# description: Test histogram aggregation
|
||||
# group: [aggregates]
|
||||
|
||||
statement ok
|
||||
PRAGMA enable_verification
|
||||
|
||||
statement ok
|
||||
PRAGMA verify_external
|
||||
|
||||
query I
|
||||
select histogram(NULL)
|
||||
----
|
||||
NULL
|
||||
|
||||
# Empty Table
|
||||
query I
|
||||
SELECT histogram(i) FROM range(100) tbl(i) WHERE 1=0;
|
||||
----
|
||||
NULL
|
||||
|
||||
query I
|
||||
select histogram(1)
|
||||
----
|
||||
{1=1}
|
||||
|
||||
# Allow ascii characters in strings
|
||||
query I
|
||||
SELECT histogram('、')
|
||||
----
|
||||
{、=1}
|
||||
|
||||
query I
|
||||
SELECT histogram(2) FROM range(100);
|
||||
----
|
||||
{2=100}
|
||||
|
||||
statement ok
|
||||
CREATE TABLE hist_data (g INTEGER, e INTEGER)
|
||||
|
||||
statement ok
|
||||
INSERT INTO hist_data VALUES (1, 1), (1, 2), (2, 3), (2, 4), (2, 5), (3, 6), (5, NULL)
|
||||
|
||||
|
||||
query T
|
||||
SELECT histogram(g) from hist_data
|
||||
----
|
||||
{1=2, 2=3, 3=1, 5=1}
|
||||
|
||||
query T
|
||||
SELECT histogram(e) from hist_data
|
||||
----
|
||||
{1=1, 2=1, 3=1, 4=1, 5=1, 6=1}
|
||||
|
||||
query I
|
||||
select histogram(g)
|
||||
from hist_data
|
||||
group by g%2==0 ORDER BY g%2==0
|
||||
----
|
||||
{1=2, 3=1, 5=1}
|
||||
{2=3}
|
||||
|
||||
query I
|
||||
select histogram(g)
|
||||
from hist_data
|
||||
where g < 3
|
||||
----
|
||||
{1=2, 2=3}
|
||||
|
||||
statement ok
|
||||
create table names (name string)
|
||||
|
||||
statement ok
|
||||
insert into names values ('pedro'), ('pedro'), ('pedro'),('hannes'),('hannes'),('mark'),(null),('Hubert Blaine Wolfeschlegelsteinhausenbergerdorff Sr.');
|
||||
|
||||
query I
|
||||
select histogram(name) from names;
|
||||
----
|
||||
{Hubert Blaine Wolfeschlegelsteinhausenbergerdorff Sr.=1, hannes=2, mark=1, pedro=3}
|
||||
|
||||
# Variant time type binding (Issue #3290)
|
||||
query I
|
||||
SELECT histogram(CAST('2021-08-20' AS TIMESTAMP_S));
|
||||
----
|
||||
{'2021-08-20 00:00:00'=1}
|
||||
|
||||
query I
|
||||
SELECT histogram(CAST('2021-08-20' AS TIMESTAMP_MS));
|
||||
----
|
||||
{'2021-08-20 00:00:00'=1}
|
||||
|
||||
query I
|
||||
SELECT histogram(CAST('2021-08-20' AS TIMESTAMP_NS));
|
||||
----
|
||||
{'2021-08-20 00:00:00'=1}
|
||||
|
||||
query I
|
||||
SELECT histogram(CAST('15:05:42' AS TIME));
|
||||
----
|
||||
{'15:05:42'=1}
|
||||
|
||||
query I
|
||||
SELECT histogram(CAST('15:05:42+00' AS TIME WITH TIME ZONE));
|
||||
----
|
||||
{'15:05:42+00'=1}
|
||||
|
||||
query I
|
||||
SELECT histogram(CAST('2022-01-02' AS DATE));
|
||||
----
|
||||
{2022-01-02=1}
|
||||
|
||||
query II rowsort
|
||||
select g,histogram(g) over (partition by g%2)
|
||||
from hist_data;
|
||||
----
|
||||
1 {1=2, 3=1, 5=1}
|
||||
1 {1=2, 3=1, 5=1}
|
||||
2 {2=3}
|
||||
2 {2=3}
|
||||
2 {2=3}
|
||||
3 {1=2, 3=1, 5=1}
|
||||
5 {1=2, 3=1, 5=1}
|
||||
|
||||
#Corner cases
|
||||
statement error
|
||||
select histogram()
|
||||
----
|
||||
|
||||
statement error
|
||||
select histogram(*)
|
||||
----
|
||||
|
||||
# enums
|
||||
statement ok
|
||||
CREATE TYPE mood AS ENUM ('sad', 'ok', 'happy')
|
||||
|
||||
statement ok
|
||||
CREATE TABLE enums (e mood)
|
||||
|
||||
statement ok
|
||||
INSERT INTO enums VALUES ('happy'), ('ok')
|
||||
|
||||
query I
|
||||
SELECT histogram(e) FROM enums
|
||||
----
|
||||
{ok=1, happy=1}
|
||||
Reference in New Issue
Block a user