should be it

This commit is contained in:
2025-10-24 19:21:19 -05:00
parent a4b23fc57c
commit f09560c7b1
14047 changed files with 3161551 additions and 1 deletions

View File

@@ -0,0 +1,137 @@
# name: test/db-benchmark/groupby.test_slow
# description: Group By benchmark (0.5GB - small dataset) from h2oai db-benchmark (https://github.com/h2oai/db-benchmark)
# group: [db-benchmark]
require httpfs
statement ok
pragma threads=16
# 5% nulls
statement ok
CREATE TABLE x AS SELECT * FROM read_csv_auto('https://github.com/duckdb/duckdb-data/releases/download/v1.0/G1_1e7_1e2_5_0.csv.gz');
# statement ok
# CREATE TABLE x AS SELECT * FROM read_csv_auto('G1_1e7_1e2_5_0.csv.gz');
# q1
statement ok
CREATE TABLE ans AS SELECT id1, sum(v1) AS v1 FROM x GROUP BY id1
query II
SELECT COUNT(*), sum(v1)::varchar AS v1 FROM ans
----
96 28498857
statement ok
DROP TABLE ans
# q2
statement ok
CREATE TABLE ans AS SELECT id1, id2, sum(v1) AS v1 FROM x GROUP BY id1, id2;
query II
SELECT count(*), sum(v1) AS v1 FROM ans;
----
9216 28498857
statement ok
DROP TABLE ans;
# q3
statement ok
CREATE TABLE ans AS SELECT id3, sum(v1) AS v1, avg(v3) AS v3 FROM x GROUP BY id3;
query III
SELECT COUNT(*), sum(v1) AS v1, sum(v3) AS v3 FROM ans;
----
95001 28498857 4749467.631946747
statement ok
DROP TABLE ans;
# q4
statement ok
CREATE TABLE ans AS SELECT id4, avg(v1) AS v1, avg(v2) AS v2, avg(v3) AS v3 FROM x GROUP BY id4;
query IIII
SELECT COUNT(*), sum(v1) AS v1, sum(v2) AS v2, sum(v3) AS v3 FROM ans
----
96 287.9894309270616821 767.8529216923457105 4799.873270453372
statement ok
DROP TABLE ans;
# q5
statement ok
CREATE TABLE ans AS SELECT id6, sum(v1) AS v1, sum(v2) AS v2, sum(v3) AS v3 FROM x GROUP BY id6;
query IIII
SELECT COUNT(*), sum(v1) AS v1, sum(v2) AS v2, sum(v3) AS v3 FROM ans
----
95001 28498857 75988394 474969574.04777884
statement ok
DROP TABLE ans;
# q6
statement ok
CREATE TABLE ans AS SELECT id4, id5, quantile_cont(v3, 0.5) AS median_v3, stddev(v3) AS sd_v3 FROM x GROUP BY id4, id5;
# WARNING: this result might be incorrect
# could not verify using Postgres because of lack of median
query III
SELECT COUNT(*), sum(median_v3) AS median_v3, sum(sd_v3) AS sd_v3 FROM ans
----
9216 460771.216444 266006.904622
statement ok
DROP TABLE ans;
# q7
statement ok
CREATE TABLE ans AS SELECT id3, max(v1)-min(v2) AS range_v1_v2 FROM x GROUP BY id3;
query II
SELECT count(*), sum(range_v1_v2) AS range_v1_v2 FROM ans;
----
95001 379850
statement ok
DROP TABLE ans;
# q8
statement ok
CREATE TABLE ans AS SELECT id6, v3 AS largest2_v3 FROM (SELECT id6, v3, row_number() OVER (PARTITION BY id6 ORDER BY v3 DESC) AS order_v3 FROM x WHERE v3 IS NOT NULL) sub_query WHERE order_v3 <= 2
query II
SELECT count(*), sum(largest2_v3) AS largest2_v3 FROM ans
----
190002 18700554.779631943
statement ok
DROP TABLE ans;
# q9
statement ok
CREATE TABLE ans AS SELECT id2, id4, pow(corr(v1, v2), 2) AS r2 FROM x GROUP BY id2, id4;
query II
SELECT count(*), sum(r2) AS r2 FROM ans
----
9216 9.940515516534346
statement ok
DROP TABLE ans;
# q10
statement ok
CREATE TABLE ans AS SELECT id1, id2, id3, id4, id5, id6, sum(v3) AS v3, count(*) AS count FROM x GROUP BY id1, id2, id3, id4, id5, id6;
query II
SELECT sum(v3) AS v3, sum(count) AS count FROM ans;
----
474969574 10000000
statement ok
DROP TABLE ans

View File

@@ -0,0 +1,100 @@
# name: test/db-benchmark/join.test_slow
# description: Join benchmark (0.5GB - small dataset) from h2oai db-benchmark (https://github.com/h2oai/db-benchmark)
# group: [db-benchmark]
require httpfs
statement ok
pragma threads=16
statement ok
CREATE TABLE x AS SELECT * FROM read_csv_auto('https://github.com/duckdb/duckdb-data/releases/download/v1.0/J1_1e7_NA_0_0.csv.gz');
statement ok
CREATE TABLE small AS SELECT * FROM read_csv_auto('https://github.com/duckdb/duckdb-data/releases/download/v1.0/J1_1e7_1e1_0_0.csv.gz');
statement ok
CREATE TABLE medium AS SELECT * FROM read_csv_auto('https://github.com/duckdb/duckdb-data/releases/download/v1.0/J1_1e7_1e4_0_0.csv.gz');
statement ok
CREATE TABLE big AS SELECT * FROM read_csv_auto('https://github.com/duckdb/duckdb-data/releases/download/v1.0/J1_1e7_1e7_0_0.csv.gz');
query I
SELECT COUNT(*) FROM x;
----
10000000
query I
SELECT COUNT(*) FROM small;
----
10
query I
SELECT COUNT(*) FROM medium;
----
10000
query I
SELECT COUNT(*) FROM big;
----
10000000
# q1
statement ok
CREATE TABLE ans AS SELECT x.*, small.id4 AS small_id4, v2 FROM x JOIN small USING (id1);
query III
SELECT COUNT(*), SUM(v1) AS v1, SUM(v2) AS v2 FROM ans;
----
8998860 450015153.57734203 347720187.39596415
statement ok
DROP TABLE ans;
# q2
statement ok
CREATE TABLE ans AS SELECT x.*, medium.id1 AS medium_id1, medium.id4 AS medium_id4, medium.id5 AS medium_id5, v2 FROM x JOIN medium USING (id2);
query III
SELECT COUNT(*), SUM(v1) AS v1, SUM(v2) AS v2 FROM ans;
----
8998412 449954076.0263213 449999844.93746006
statement ok
DROP TABLE ans;
# q3
statement ok
CREATE TABLE ans AS SELECT x.*, medium.id1 AS medium_id1, medium.id4 AS medium_id4, medium.id5 AS medium_id5, v2 FROM x LEFT JOIN medium USING (id2);
query III
SELECT COUNT(*), SUM(v1) AS v1, SUM(v2) AS v2 FROM ans;
----
10000000 500043740.7523774 449999844.93746
statement ok
DROP TABLE ans;
# q4
statement ok
CREATE TABLE ans AS SELECT x.*, medium.id1 AS medium_id1, medium.id2 AS medium_id2, medium.id4 AS medium_id4, v2 FROM x JOIN medium USING (id5);
query III
SELECT COUNT(*), SUM(v1) AS v1, SUM(v2) AS v2 FROM ans;
----
8998412 449954076.02631813 449999844.93746257
statement ok
DROP TABLE ans;
# q5
statement ok
CREATE TABLE ans AS SELECT x.*, big.id1 AS big_id1, big.id2 AS big_id2, big.id4 AS big_id4, big.id5 AS big_id5, big.id6 AS big_id6, v2 FROM x JOIN big USING (id3);
query III
SELECT COUNT(*), SUM(v1) AS v1, SUM(v2) AS v2 FROM ans;
----
9000000 450032091.8405316 449860428.6155452
statement ok
DROP TABLE ans;