# 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;