86 lines
2.8 KiB
SQL
86 lines
2.8 KiB
SQL
# name: test/sql/show_select/test_summarize.test
|
|
# description: Test summarize command
|
|
# group: [show_select]
|
|
|
|
statement ok
|
|
PRAGMA enable_verification
|
|
|
|
statement ok
|
|
CREATE TABLE types(i INTEGER, j VARCHAR, k HUGEINT, d DOUBLE, e BLOB);
|
|
|
|
statement ok
|
|
INSERT INTO types VALUES
|
|
(1, 'hello', 12, 0.5, BLOB 'a\x00b\x00c'),
|
|
(2, 'world', -12, -0.5, BLOB ''),
|
|
(3, NULL, NULL, NULL, NULL);
|
|
|
|
query IIII
|
|
SELECT UNNEST(['i', 'j', 'k', 'd', 'e']) column_names,
|
|
UNNEST(['INTEGER', 'VARCHAR', 'HUGEINT', 'DOUBLE', 'BLOB']) column_types,
|
|
UNNEST([MIN(i)::VARCHAR, MIN(j)::VARCHAR, MIN(k)::VARCHAR, MIN(d)::VARCHAR, MIN(e)::VARCHAR]) min,
|
|
UNNEST([MAX(i)::VARCHAR, MAX(j)::VARCHAR, MAX(k)::VARCHAR, MAX(d)::VARCHAR, MAX(e)::VARCHAR]) max
|
|
FROM (SELECT * FROM types) tbl
|
|
----
|
|
i INTEGER 1 3
|
|
j VARCHAR hello world
|
|
k HUGEINT -12 12
|
|
d DOUBLE -0.5 0.5
|
|
e BLOB (empty) a\x00b\x00c
|
|
|
|
query IIIIIIIIIIII
|
|
SUMMARIZE types;
|
|
----
|
|
i INTEGER 1 3 3 2.0 1.0 1 2 3 3 0.0
|
|
j VARCHAR hello world 2 NULL NULL NULL NULL NULL 3 33.33
|
|
k HUGEINT -12 12 2 0.0 16.97056274847714 -12 0 12 3 33.33
|
|
d DOUBLE -0.5 0.5 2 0.0 0.7071067811865476 -0.5 0.0 0.5 3 33.33
|
|
e BLOB (empty) a\x00b\x00c 2 NULL NULL NULL NULL NULL 3 33.33
|
|
|
|
query IIIIIIIIIIII
|
|
SUMMARIZE SELECT * FROM types;
|
|
----
|
|
i INTEGER 1 3 3 2.0 1.0 1 2 3 3 0.0
|
|
j VARCHAR hello world 2 NULL NULL NULL NULL NULL 3 33.33
|
|
k HUGEINT -12 12 2 0.0 16.97056274847714 -12 0 12 3 33.33
|
|
d DOUBLE -0.5 0.5 2 0.0 0.7071067811865476 -0.5 0.0 0.5 3 33.33
|
|
e BLOB (empty) a\x00b\x00c 2 NULL NULL NULL NULL NULL 3 33.33
|
|
|
|
# Temporal types
|
|
query IIIIIIIIIIII
|
|
summarize
|
|
from range('2024-01-01'::TIMESTAMP, '2024-04-10'::TIMESTAMP, INTERVAL 1 DAY);
|
|
----
|
|
range TIMESTAMP 2024-01-01 00:00:00 2024-04-09 00:00:00 99 2024-02-19 12:00:00 NULL 2024-01-25 12:00:00 2024-02-19 12:00:00 2024-03-15 12:00:00 100 0.00
|
|
|
|
query IIIIIIIIIIII
|
|
summarize
|
|
SELECT range::DATE AS range from range('2024-01-01'::DATE, '2024-04-10'::DATE, INTERVAL 1 DAY);
|
|
----
|
|
range DATE 2024-01-01 2024-04-09 98 2024-02-19 12:00:00 NULL 2024-01-26 2024-02-19 2024-03-16 100 0.00
|
|
|
|
query IIIIIIIIIIII
|
|
summarize
|
|
SELECT range::TIME AS range from range('2024-01-01'::DATE, '2024-04-10'::DATE, INTERVAL 1 HOUR);
|
|
----
|
|
range TIME 00:00:00 23:00:00 28 11:30:00 NULL 05:24:35.480769 11:28:55.400975 17:30:41.666667 2400 0.00
|
|
|
|
# TIMETZ quantiles. Note these are fuzzy because we use DOUBLEs in the sketch.
|
|
query IIIIIIIIIIII
|
|
SUMMARIZE (SELECT '1:02:03.000000+05:30'::TIMETZ AS ttz);
|
|
----
|
|
ttz TIME WITH TIME ZONE 01:02:03+05:30 01:02:03+05:30 1 19:32:03+00 NULL 01:02:42+05:30:39 01:02:42+05:30:39 01:02:42+05:30:39 1 0.00
|
|
|
|
statement ok
|
|
SUMMARIZE VALUES (1.0),(6754950520);
|
|
|
|
# Various overflows
|
|
statement ok
|
|
SUMMARIZE SELECT 9223372036854775296;
|
|
|
|
statement ok
|
|
summarize select bigint from test_all_types();
|
|
|
|
statement ok
|
|
summarize select 9223372036854775295;
|
|
|