123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527 |
- # Copyright Materialize, Inc. and contributors. All rights reserved.
- #
- # Use of this software is governed by the Business Source License
- # included in the LICENSE file at the root of this repository.
- #
- # As of the Change Date specified in that file, in accordance with
- # the Business Source License, use of this software will be governed
- # by the Apache License, Version 2.0.
- $ set-arg-default single-replica-cluster=quickstart
- # Test the cardinality of TPCH tables. For tables that have a random
- # cardinality, don't depend on exact count that could change if the rng
- # implementation changes, just check that it's within the spec range.
- $ postgres-execute connection=postgres://mz_system:materialize@${testdrive.materialize-internal-sql-addr}
- ALTER SYSTEM SET enable_create_table_from_source = false
- ! CREATE SOURCE gen
- IN CLUSTER ${arg.single-replica-cluster}
- FROM LOAD GENERATOR TPCH (SCALE FACTOR 0)
- contains: multi-output sources require a FOR TABLES (..) or FOR ALL TABLES statement
- $ postgres-execute connection=postgres://mz_system:materialize@${testdrive.materialize-internal-sql-addr}
- ALTER SYSTEM SET enable_create_table_from_source = true
- ! CREATE SOURCE gen
- IN CLUSTER ${arg.single-replica-cluster}
- FROM LOAD GENERATOR TPCH (SCALE FACTOR 9223372036854775807)
- contains: unsupported scale factor 9223372036854776000
- ! CREATE SOURCE gen
- IN CLUSTER ${arg.single-replica-cluster}
- FROM LOAD GENERATOR TPCH (SCALE FACTOR -1)
- contains: unsupported scale factor -1
- > CREATE SOURCE gen
- IN CLUSTER ${arg.single-replica-cluster}
- FROM LOAD GENERATOR TPCH (SCALE FACTOR .01, UP TO 100)
- > CREATE TABLE customer FROM SOURCE gen (REFERENCE customer);
- > CREATE TABLE lineitem FROM SOURCE gen (REFERENCE lineitem);
- > CREATE TABLE nation FROM SOURCE gen (REFERENCE nation);
- > CREATE TABLE orders FROM SOURCE gen (REFERENCE orders);
- > CREATE TABLE part FROM SOURCE gen (REFERENCE part);
- > CREATE TABLE partsupp FROM SOURCE gen (REFERENCE partsupp);
- > CREATE TABLE region FROM SOURCE gen (REFERENCE region);
- > CREATE TABLE supplier FROM SOURCE gen (REFERENCE supplier);
- > SHOW SOURCES
- name type cluster comment
- -----------------------------------------------------------------------
- gen load-generator ${arg.single-replica-cluster} ""
- gen_progress progress <null> ""
- > SHOW TABLES
- name comment
- ------------------------
- customer ""
- lineitem ""
- nation ""
- orders ""
- part ""
- partsupp ""
- region ""
- supplier ""
- # SF * 150,000
- > SELECT count(*) FROM customer
- 1500
- # For each row in the ORDERS table, a random number of rows within [1 .. 7] in the LINEITEM table
- > SELECT count(*) >= 15000 AND count(*) <= 15000 * 7 FROM lineitem
- true
- # 25 rows in the NATION table
- > SELECT count(*) FROM nation
- 25
- # For each row in the CUSTOMER table, ten rows in the ORDERS table
- > SELECT count(*) FROM orders
- 15000
- # SF * 200,000
- > SELECT count(*) FROM part
- 2000
- # For each row in the PART table, four rows in PartSupp table
- > SELECT count(*) FROM partsupp
- 8000
- # 5 rows in the REGION table
- > SELECT count(*) FROM region
- 5
- # SF * 10,000
- > SELECT count(*) FROM supplier
- 100
- ##################
- # Output testing #
- ##################
- # It would be better to do the output testing in an slt for easier rewrites, but that is currently not possible, see
- # https://materializeinc.slack.com/archives/C01LKF361MZ/p1666634493207499?thread_ts=1666621743.361779&cid=C01LKF361MZ
- # Copied the queries from misc/python/materialize/optbench/workload/tpch.sql
- > CREATE VIEW revenue (supplier_no, total_revenue) AS
- SELECT
- l_suppkey,
- sum(l_extendedprice * (1 - l_discount))
- FROM
- lineitem
- WHERE
- l_shipdate >= DATE '1996-01-01'
- AND l_shipdate < DATE '1996-01-01' + INTERVAL '3' month
- GROUP BY
- l_suppkey;
- ################################################
- # Without indexes
- ################################################
- # Query 01
- > SELECT
- l_returnflag,
- l_linestatus,
- sum(l_quantity) AS sum_qty,
- sum(l_extendedprice) AS sum_base_price,
- sum(l_extendedprice * (1 - l_discount)) AS sum_disc_price,
- sum(l_extendedprice * (1 - l_discount) * (1 + l_tax)) AS sum_charge,
- avg(l_quantity) AS avg_qty,
- avg(l_extendedprice) AS avg_price,
- avg(l_discount) AS avg_disc,
- count(*) AS count_order
- FROM
- lineitem
- WHERE
- l_shipdate <= DATE '1998-12-01' - INTERVAL '60' day
- GROUP BY
- l_returnflag,
- l_linestatus
- ORDER BY
- l_returnflag,
- l_linestatus;
- 4 values hashing to 87d2cbecfc8cdcd9c9614dfb7e6d236f
- # Query 02
- > SELECT
- s_acctbal,
- s_name,
- n_name,
- p_partkey,
- p_mfgr,
- s_address,
- s_phone,
- s_comment
- FROM
- part, supplier, partsupp, nation, region
- WHERE
- p_partkey = ps_partkey
- AND s_suppkey = ps_suppkey
- AND p_size = CAST (15 AS smallint)
- AND p_type LIKE '%BRASS'
- AND s_nationkey = n_nationkey
- AND n_regionkey = r_regionkey
- AND r_name = 'EUROPE'
- AND ps_supplycost
- = (
- SELECT
- min(ps_supplycost)
- FROM
- partsupp, supplier, nation, region
- WHERE
- p_partkey = ps_partkey
- AND s_suppkey = ps_suppkey
- AND s_nationkey = n_nationkey
- AND n_regionkey = r_regionkey
- AND r_name = 'EUROPE'
- )
- ORDER BY
- s_acctbal DESC, n_name, s_name, p_partkey;
- 5 values hashing to 746698506bf99abc24b74f03ffb7375a
- # Query 03
- > SELECT
- l_orderkey,
- sum(l_extendedprice * (1 - l_discount)) AS revenue,
- o_orderdate,
- o_shippriority
- FROM
- customer,
- orders,
- lineitem
- WHERE
- c_mktsegment = 'BUILDING'
- AND c_custkey = o_custkey
- AND l_orderkey = o_orderkey
- AND o_orderdate < DATE '1995-03-15'
- AND l_shipdate > DATE '1995-03-15'
- GROUP BY
- l_orderkey,
- o_orderdate,
- o_shippriority
- ORDER BY
- revenue DESC,
- o_orderdate;
- 127 values hashing to 637be0ff3f50cd612b004a69958bfccb
- # Query 04
- > SELECT
- o_orderpriority,
- count(*) AS order_count
- FROM
- orders
- WHERE
- o_orderdate >= DATE '1993-07-01'
- AND o_orderdate < DATE '1993-07-01' + INTERVAL '3' month
- AND EXISTS (
- SELECT
- *
- FROM
- lineitem
- WHERE
- l_orderkey = o_orderkey
- AND l_commitdate < l_receiptdate
- )
- GROUP BY
- o_orderpriority
- ORDER BY
- o_orderpriority;
- 4 values hashing to 320decef503bc240bc73101fc659a1db
- # Query 05
- > SELECT
- n_name,
- sum(l_extendedprice * (1 - l_discount)) AS revenue
- FROM
- customer,
- orders,
- lineitem,
- supplier,
- nation,
- region
- WHERE
- c_custkey = o_custkey
- AND l_orderkey = o_orderkey
- AND l_suppkey = s_suppkey
- AND c_nationkey = s_nationkey
- AND s_nationkey = n_nationkey
- AND n_regionkey = r_regionkey
- AND r_name = 'ASIA'
- AND o_orderdate >= DATE '1994-01-01'
- AND o_orderdate < DATE '1995-01-01'
- GROUP BY
- n_name
- ORDER BY
- revenue DESC;
- 5 values hashing to 8e24fa90f7160fb0dc1e7bfaaa3e9c73
- # Query 06
- > SELECT
- sum(l_extendedprice * l_discount) AS revenue
- FROM
- lineitem
- WHERE
- l_quantity < 24
- AND l_shipdate >= DATE '1994-01-01'
- AND l_shipdate < DATE '1994-01-01' + INTERVAL '1' year
- AND l_discount BETWEEN 0.06 - 0.01 AND 0.07;
- 1 values hashing to d9c979f1eed5940788ff3653321acac4
- # Query 07
- > SELECT
- supp_nation,
- cust_nation,
- l_year,
- sum(volume) AS revenue
- FROM
- (
- SELECT
- n1.n_name AS supp_nation,
- n2.n_name AS cust_nation,
- extract(year FROM l_shipdate) AS l_year,
- l_extendedprice * (1 - l_discount) AS volume
- FROM
- supplier,
- lineitem,
- orders,
- customer,
- nation n1,
- nation n2
- WHERE
- s_suppkey = l_suppkey
- AND o_orderkey = l_orderkey
- AND c_custkey = o_custkey
- AND s_nationkey = n1.n_nationkey
- AND c_nationkey = n2.n_nationkey
- AND (
- (n1.n_name = 'FRANCE' AND n2.n_name = 'GERMANY')
- or (n1.n_name = 'GERMANY' AND n2.n_name = 'FRANCE')
- )
- AND l_shipdate BETWEEN DATE '1995-01-01' AND DATE '1996-12-31'
- ) AS shipping
- GROUP BY
- supp_nation,
- cust_nation,
- l_year
- ORDER BY
- supp_nation,
- cust_nation,
- l_year;
- 4 values hashing to 0ab7e162c0d17f7fbdebbcb6e6eb4e7f
- # Query 08
- > SELECT
- o_year,
- sum(case
- when nation = 'BRAZIL' then volume
- else 0
- end) / sum(volume) AS mkt_share
- FROM
- (
- SELECT
- extract(year FROM o_orderdate) AS o_year,
- l_extendedprice * (1 - l_discount) AS volume,
- n2.n_name AS nation
- FROM
- part,
- supplier,
- lineitem,
- orders,
- customer,
- nation n1,
- nation n2,
- region
- WHERE
- p_partkey = l_partkey
- AND s_suppkey = l_suppkey
- AND l_orderkey = o_orderkey
- AND o_custkey = c_custkey
- AND c_nationkey = n1.n_nationkey
- AND n1.n_regionkey = r_regionkey
- AND r_name = 'AMERICA'
- AND s_nationkey = n2.n_nationkey
- AND o_orderdate BETWEEN DATE '1995-01-01' AND DATE '1996-12-31'
- AND p_type = 'ECONOMY ANODIZED STEEL'
- ) AS all_nations
- GROUP BY
- o_year
- ORDER BY
- o_year;
- 2 values hashing to dbf3e9692c45719c7b16f17cbb102e8a
- # Query 09
- > SELECT
- nation,
- o_year,
- sum(amount) AS sum_profit
- FROM
- (
- SELECT
- n_name AS nation,
- extract(year FROM o_orderdate) AS o_year,
- l_extendedprice * (1 - l_discount) - ps_supplycost * l_quantity AS amount
- FROM
- part,
- supplier,
- lineitem,
- partsupp,
- orders,
- nation
- WHERE
- s_suppkey = l_suppkey
- AND ps_suppkey = l_suppkey
- AND ps_partkey = l_partkey
- AND p_partkey = l_partkey
- AND o_orderkey = l_orderkey
- AND s_nationkey = n_nationkey
- AND p_name like '%green%'
- ) AS profit
- GROUP BY
- nation,
- o_year
- ORDER BY
- nation,
- o_year DESC;
- 172 values hashing to b0fbcce5ec14e4786bb47cc6a365d7e3
- # Query 10
- > SELECT
- c_custkey,
- c_name,
- sum(l_extendedprice * (1 - l_discount)) AS revenue,
- c_acctbal,
- n_name,
- c_address,
- c_phone,
- c_comment
- FROM
- customer,
- orders,
- lineitem,
- nation
- WHERE
- c_custkey = o_custkey
- AND l_orderkey = o_orderkey
- AND o_orderdate >= DATE '1993-10-01'
- AND o_orderdate < DATE '1994-01-01'
- AND o_orderdate < DATE '1993-10-01' + INTERVAL '3' month
- AND l_returnflag = 'R'
- AND c_nationkey = n_nationkey
- GROUP BY
- c_custkey,
- c_name,
- c_acctbal,
- c_phone,
- n_name,
- c_address,
- c_comment
- ORDER BY
- revenue DESC;
- 366 values hashing to 23dd20e994576aec9e5898b128a6b5a5
- # Query 11
- > SELECT
- ps_partkey,
- sum(ps_supplycost * ps_availqty) AS value
- FROM
- partsupp,
- supplier,
- nation
- WHERE
- ps_suppkey = s_suppkey
- AND s_nationkey = n_nationkey
- AND n_name = 'GERMANY'
- GROUP BY
- ps_partkey having
- sum(ps_supplycost * ps_availqty) > (
- SELECT
- sum(ps_supplycost * ps_availqty) * 0.0001
- FROM
- partsupp,
- supplier,
- nation
- WHERE
- ps_suppkey = s_suppkey
- AND s_nationkey = n_nationkey
- AND n_name = 'GERMANY'
- )
- ORDER BY
- value DESC;
- 103 values hashing to 2a4b6afc2de49adfe1cf81446d355cb1
- # Query 12
- > SELECT
- l_shipmode,
- sum(case
- when o_orderpriority = '1-URGENT'
- or o_orderpriority = '2-HIGH'
- then 1
- else 0
- end) AS high_line_count,
- sum(case
- when o_orderpriority <> '1-URGENT'
- AND o_orderpriority <> '2-HIGH'
- then 1
- else 0
- end) AS low_line_count
- FROM
- orders,
- lineitem
- WHERE
- o_orderkey = l_orderkey
- AND l_shipmode IN ('MAIL', 'SHIP')
- AND l_commitdate < l_receiptdate
- AND l_shipdate < l_commitdate
- AND l_receiptdate >= DATE '1994-01-01'
- AND l_receiptdate < DATE '1994-01-01' + INTERVAL '1' year
- GROUP BY
- l_shipmode
- ORDER BY
- l_shipmode;
- 2 values hashing to 3c31b94c99bd77e96003c2059416ed7a
- # Query 13
- > SELECT
- c_count,
- count(*) AS custdist
- FROM
- (
- SELECT
- c_custkey,
- count(o_orderkey) c_count
- FROM
- customer LEFT OUTER JOIN orders ON
- c_custkey = o_custkey
- AND o_comment NOT LIKE '%special%requests%'
- GROUP BY
- c_custkey
- ) AS c_orders
- GROUP BY
- c_count
- ORDER BY
- custdist DESC,
- c_count DESC;
- 24 values hashing to 0425a49d65f09ba044a8ae4e34fe2fef
- # Query 14
- > SELECT
- 100.00 * sum(case
- when p_type like 'PROMO%'
- then l_extendedprice * (1 - l_discount)
- else 0
- end) / sum(l_extendedprice * (1 - l_discount)) AS promo_revenue
- FROM
- lineitem,
- part
- WHERE
- l_partkey = p_partkey
- AND l_shipdate >= DATE '1995-09-01'
- AND l_shipdate < DATE '1995-09-01' + INTERVAL '1' month;
- 1 values hashing to 52009b01ec2cea22a360dbb1de1e5acf
- # Query 15
- > SELECT
- s_suppkey,
- s_name,
- s_address,
- s_phone,
- total_revenue
- FROM
- supplier,
- revenue
- WHERE
- s_suppkey = supplier_no
- AND total_revenue = (
- SELECT
- max(total_revenue)
- FROM
- revenue
- )
- ORDER BY
- s_suppkey;
- 1 values hashing to cef6c8859cb05a1680529bf4b688bbdb
- # Query 16
- > SELECT
- p_brand,
- p_type,
- p_size,
- count(DISTINCT ps_suppkey) AS supplier_cnt
- FROM
- partsupp,
- part
- WHERE
- p_partkey = ps_partkey
- AND p_brand <> 'Brand#45'
- AND p_type NOT LIKE 'MEDIUM POLISHED%'
- AND p_size IN (49, 14, 23, 45, 19, 3, 36, 9)
- AND ps_suppkey NOT IN (
- SELECT
- s_suppkey
- FROM
- supplier
- WHERE
- s_comment like '%Customer%Complaints%'
- )
- GROUP BY
- p_brand,
- p_type,
- p_size
- ORDER BY
- supplier_cnt DESC,
- p_brand,
- p_type,
- p_size;
- 309 values hashing to c4a6eb0207205cae9790096e7e4381d7
- # Query 17
- > SELECT
- sum(l_extendedprice) / 7.0 AS avg_yearly
- FROM
- lineitem,
- part
- WHERE
- p_partkey = l_partkey
- AND p_brand = 'Brand#23'
- AND p_container = 'MED BOX'
- AND l_quantity < (
- SELECT
- 0.2 * avg(l_quantity)
- FROM
- lineitem
- WHERE
- l_partkey = p_partkey
- );
- 1 values hashing to 6ea48615d6dd1ff31045cd67a15ef60a
- # Query 18
- > SELECT
- c_name,
- c_custkey,
- o_orderkey,
- o_orderdate,
- o_totalprice,
- sum(l_quantity)
- FROM
- customer,
- orders,
- lineitem
- WHERE
- o_orderkey IN (
- SELECT
- l_orderkey
- FROM
- lineitem
- GROUP BY
- l_orderkey having
- sum(l_quantity) > 300
- )
- AND c_custkey = o_custkey
- AND o_orderkey = l_orderkey
- GROUP BY
- c_name,
- c_custkey,
- o_orderkey,
- o_orderdate,
- o_totalprice
- ORDER BY
- o_totalprice DESC,
- o_orderdate;
- 3 values hashing to 321256b5aef1aedab78f125c5925de92
- # Query 19
- > SELECT
- sum(l_extendedprice* (1 - l_discount)) AS revenue
- FROM
- lineitem,
- part
- WHERE
- (
- p_partkey = l_partkey
- AND p_brand = 'Brand#12'
- AND p_container IN ('SM CASE', 'SM BOX', 'SM PACK', 'SM PKG')
- AND l_quantity >= CAST (1 AS smallint) AND l_quantity <= CAST (1 + 10 AS smallint)
- AND p_size BETWEEN CAST (1 AS smallint) AND CAST (5 AS smallint)
- AND l_shipmode IN ('AIR', 'AIR REG')
- AND l_shipinstruct = 'DELIVER IN PERSON'
- )
- or
- (
- p_partkey = l_partkey
- AND p_brand = 'Brand#23'
- AND p_container IN ('MED BAG', 'MED BOX', 'MED PKG', 'MED PACK')
- AND l_quantity >= CAST (10 AS smallint) AND l_quantity <= CAST (10 + 10 AS smallint)
- AND p_size BETWEEN CAST (1 AS smallint) AND CAST (10 AS smallint)
- AND l_shipmode IN ('AIR', 'AIR REG')
- AND l_shipinstruct = 'DELIVER IN PERSON'
- )
- or
- (
- p_partkey = l_partkey
- AND p_brand = 'Brand#34'
- AND p_container IN ('LG CASE', 'LG BOX', 'LG PACK', 'LG PKG')
- AND l_quantity >= CAST (20 AS smallint) AND l_quantity <= CAST (20 + 10 AS smallint)
- AND p_size BETWEEN CAST (1 AS smallint) AND CAST (15 AS smallint)
- AND l_shipmode IN ('AIR', 'AIR REG')
- AND l_shipinstruct = 'DELIVER IN PERSON'
- );
- 1 values hashing to 7df1074bd6f415369eb335bff3ad1781
- # Query 20
- > SELECT
- s_name,
- s_address
- FROM
- supplier,
- nation
- WHERE
- s_suppkey IN (
- SELECT
- ps_suppkey
- FROM
- partsupp
- WHERE
- ps_partkey IN (
- SELECT
- p_partkey
- FROM
- part
- WHERE
- p_name like 'forest%'
- )
- AND ps_availqty > (
- SELECT
- 0.5 * sum(l_quantity)
- FROM
- lineitem
- WHERE
- l_partkey = ps_partkey
- AND l_suppkey = ps_suppkey
- AND l_shipdate >= DATE '1995-01-01'
- AND l_shipdate < DATE '1995-01-01' + INTERVAL '1' year
- )
- )
- AND s_nationkey = n_nationkey
- AND n_name = 'CANADA'
- ORDER BY
- s_name;
- 2 values hashing to d093f99c74b217399be0eccc998662af
- # Query 21
- > SELECT
- s_name,
- count(*) AS numwait
- FROM
- supplier,
- lineitem l1,
- orders,
- nation
- WHERE
- s_suppkey = l1.l_suppkey
- AND o_orderkey = l1.l_orderkey
- AND o_orderstatus = 'F'
- AND l1.l_receiptdate > l1.l_commitdate
- AND EXISTS (
- SELECT
- *
- FROM
- lineitem l2
- WHERE
- l2.l_orderkey = l1.l_orderkey
- AND l2.l_suppkey <> l1.l_suppkey
- )
- AND not EXISTS (
- SELECT
- *
- FROM
- lineitem l3
- WHERE
- l3.l_orderkey = l1.l_orderkey
- AND l3.l_suppkey <> l1.l_suppkey
- AND l3.l_receiptdate > l3.l_commitdate
- )
- AND s_nationkey = n_nationkey
- AND n_name = 'SAUDI ARABIA'
- GROUP BY
- s_name
- ORDER BY
- numwait DESC,
- s_name;
- 2 values hashing to fd48e843525a4c80b8fe0b7064b35254
- # Query 22
- > SELECT
- cntrycode,
- count(*) AS numcust,
- sum(c_acctbal) AS totacctbal
- FROM
- (
- SELECT
- substring(c_phone, 1, 2) AS cntrycode, c_acctbal
- FROM
- customer
- WHERE
- substring(c_phone, 1, 2)
- IN ('13', '31', '23', '29', '30', '18', '17')
- AND c_acctbal
- > (
- SELECT
- avg(c_acctbal)
- FROM
- customer
- WHERE
- c_acctbal > 0.00
- AND substring(c_phone, 1, 2)
- IN (
- '13',
- '31',
- '23',
- '29',
- '30',
- '18',
- '17'
- )
- )
- AND NOT
- EXISTS(
- SELECT
- *
- FROM
- orders
- WHERE
- o_custkey = c_custkey
- )
- )
- AS custsale
- GROUP BY
- cntrycode
- ORDER BY
- cntrycode;
- 7 values hashing to 3782c67124c71b5bcb3460934dec46de
- ################################################
- # With indexes
- ################################################
- > CREATE INDEX pk_nation_nationkey ON nation (n_nationkey ASC)
- > CREATE INDEX fk_nation_regionkey ON nation (n_regionkey ASC)
- > CREATE INDEX pk_region_regionkey ON region (r_regionkey ASC)
- > CREATE INDEX pk_part_partkey ON part (p_partkey ASC)
- > CREATE INDEX pk_supplier_suppkey ON supplier (s_suppkey ASC)
- > CREATE INDEX fk_supplier_nationkey ON supplier (s_nationkey ASC)
- > CREATE INDEX pk_partsupp_partkey_suppkey ON partsupp (ps_partkey ASC, ps_suppkey ASC)
- > CREATE INDEX fk_partsupp_partkey ON partsupp (ps_partkey ASC)
- > CREATE INDEX fk_partsupp_suppkey ON partsupp (ps_suppkey ASC)
- > CREATE INDEX pk_customer_custkey ON customer (c_custkey ASC)
- > CREATE INDEX fk_customer_nationkey ON customer (c_nationkey ASC)
- > CREATE INDEX pk_orders_orderkey ON orders (o_orderkey ASC)
- > CREATE INDEX fk_orders_custkey ON orders (o_custkey ASC)
- > CREATE INDEX pk_lineitem_orderkey_linenumber ON lineitem (l_orderkey ASC, l_linenumber ASC)
- > CREATE INDEX fk_lineitem_orderkey ON lineitem (l_orderkey ASC)
- > CREATE INDEX fk_lineitem_partkey ON lineitem (l_partkey ASC)
- > CREATE INDEX fk_lineitem_suppkey ON lineitem (l_suppkey ASC)
- > CREATE INDEX fk_lineitem_partsuppkey ON lineitem (l_partkey ASC, l_suppkey ASC)
- # Query 01
- > SELECT
- l_returnflag,
- l_linestatus,
- sum(l_quantity) AS sum_qty,
- sum(l_extendedprice) AS sum_base_price,
- sum(l_extendedprice * (1 - l_discount)) AS sum_disc_price,
- sum(l_extendedprice * (1 - l_discount) * (1 + l_tax)) AS sum_charge,
- avg(l_quantity) AS avg_qty,
- avg(l_extendedprice) AS avg_price,
- avg(l_discount) AS avg_disc,
- count(*) AS count_order
- FROM
- lineitem
- WHERE
- l_shipdate <= DATE '1998-12-01' - INTERVAL '60' day
- GROUP BY
- l_returnflag,
- l_linestatus
- ORDER BY
- l_returnflag,
- l_linestatus;
- 4 values hashing to 87d2cbecfc8cdcd9c9614dfb7e6d236f
- # Query 02
- > SELECT
- s_acctbal,
- s_name,
- n_name,
- p_partkey,
- p_mfgr,
- s_address,
- s_phone,
- s_comment
- FROM
- part, supplier, partsupp, nation, region
- WHERE
- p_partkey = ps_partkey
- AND s_suppkey = ps_suppkey
- AND p_size = CAST (15 AS smallint)
- AND p_type LIKE '%BRASS'
- AND s_nationkey = n_nationkey
- AND n_regionkey = r_regionkey
- AND r_name = 'EUROPE'
- AND ps_supplycost
- = (
- SELECT
- min(ps_supplycost)
- FROM
- partsupp, supplier, nation, region
- WHERE
- p_partkey = ps_partkey
- AND s_suppkey = ps_suppkey
- AND s_nationkey = n_nationkey
- AND n_regionkey = r_regionkey
- AND r_name = 'EUROPE'
- )
- ORDER BY
- s_acctbal DESC, n_name, s_name, p_partkey;
- 5 values hashing to 746698506bf99abc24b74f03ffb7375a
- # Query 03
- > SELECT
- l_orderkey,
- sum(l_extendedprice * (1 - l_discount)) AS revenue,
- o_orderdate,
- o_shippriority
- FROM
- customer,
- orders,
- lineitem
- WHERE
- c_mktsegment = 'BUILDING'
- AND c_custkey = o_custkey
- AND l_orderkey = o_orderkey
- AND o_orderdate < DATE '1995-03-15'
- AND l_shipdate > DATE '1995-03-15'
- GROUP BY
- l_orderkey,
- o_orderdate,
- o_shippriority
- ORDER BY
- revenue DESC,
- o_orderdate;
- 127 values hashing to 637be0ff3f50cd612b004a69958bfccb
- # Query 04
- > SELECT
- o_orderpriority,
- count(*) AS order_count
- FROM
- orders
- WHERE
- o_orderdate >= DATE '1993-07-01'
- AND o_orderdate < DATE '1993-07-01' + INTERVAL '3' month
- AND EXISTS (
- SELECT
- *
- FROM
- lineitem
- WHERE
- l_orderkey = o_orderkey
- AND l_commitdate < l_receiptdate
- )
- GROUP BY
- o_orderpriority
- ORDER BY
- o_orderpriority;
- 4 values hashing to 320decef503bc240bc73101fc659a1db
- # Query 05
- > SELECT
- n_name,
- sum(l_extendedprice * (1 - l_discount)) AS revenue
- FROM
- customer,
- orders,
- lineitem,
- supplier,
- nation,
- region
- WHERE
- c_custkey = o_custkey
- AND l_orderkey = o_orderkey
- AND l_suppkey = s_suppkey
- AND c_nationkey = s_nationkey
- AND s_nationkey = n_nationkey
- AND n_regionkey = r_regionkey
- AND r_name = 'ASIA'
- AND o_orderdate >= DATE '1994-01-01'
- AND o_orderdate < DATE '1995-01-01'
- GROUP BY
- n_name
- ORDER BY
- revenue DESC;
- 5 values hashing to 8e24fa90f7160fb0dc1e7bfaaa3e9c73
- # Query 06
- > SELECT
- sum(l_extendedprice * l_discount) AS revenue
- FROM
- lineitem
- WHERE
- l_quantity < 24
- AND l_shipdate >= DATE '1994-01-01'
- AND l_shipdate < DATE '1994-01-01' + INTERVAL '1' year
- AND l_discount BETWEEN 0.06 - 0.01 AND 0.07;
- 1 values hashing to d9c979f1eed5940788ff3653321acac4
- # Query 07
- > SELECT
- supp_nation,
- cust_nation,
- l_year,
- sum(volume) AS revenue
- FROM
- (
- SELECT
- n1.n_name AS supp_nation,
- n2.n_name AS cust_nation,
- extract(year FROM l_shipdate) AS l_year,
- l_extendedprice * (1 - l_discount) AS volume
- FROM
- supplier,
- lineitem,
- orders,
- customer,
- nation n1,
- nation n2
- WHERE
- s_suppkey = l_suppkey
- AND o_orderkey = l_orderkey
- AND c_custkey = o_custkey
- AND s_nationkey = n1.n_nationkey
- AND c_nationkey = n2.n_nationkey
- AND (
- (n1.n_name = 'FRANCE' AND n2.n_name = 'GERMANY')
- or (n1.n_name = 'GERMANY' AND n2.n_name = 'FRANCE')
- )
- AND l_shipdate BETWEEN DATE '1995-01-01' AND DATE '1996-12-31'
- ) AS shipping
- GROUP BY
- supp_nation,
- cust_nation,
- l_year
- ORDER BY
- supp_nation,
- cust_nation,
- l_year;
- 4 values hashing to 0ab7e162c0d17f7fbdebbcb6e6eb4e7f
- # Query 08
- > SELECT
- o_year,
- sum(case
- when nation = 'BRAZIL' then volume
- else 0
- end) / sum(volume) AS mkt_share
- FROM
- (
- SELECT
- extract(year FROM o_orderdate) AS o_year,
- l_extendedprice * (1 - l_discount) AS volume,
- n2.n_name AS nation
- FROM
- part,
- supplier,
- lineitem,
- orders,
- customer,
- nation n1,
- nation n2,
- region
- WHERE
- p_partkey = l_partkey
- AND s_suppkey = l_suppkey
- AND l_orderkey = o_orderkey
- AND o_custkey = c_custkey
- AND c_nationkey = n1.n_nationkey
- AND n1.n_regionkey = r_regionkey
- AND r_name = 'AMERICA'
- AND s_nationkey = n2.n_nationkey
- AND o_orderdate BETWEEN DATE '1995-01-01' AND DATE '1996-12-31'
- AND p_type = 'ECONOMY ANODIZED STEEL'
- ) AS all_nations
- GROUP BY
- o_year
- ORDER BY
- o_year;
- 2 values hashing to dbf3e9692c45719c7b16f17cbb102e8a
- # Query 09
- > SELECT
- nation,
- o_year,
- sum(amount) AS sum_profit
- FROM
- (
- SELECT
- n_name AS nation,
- extract(year FROM o_orderdate) AS o_year,
- l_extendedprice * (1 - l_discount) - ps_supplycost * l_quantity AS amount
- FROM
- part,
- supplier,
- lineitem,
- partsupp,
- orders,
- nation
- WHERE
- s_suppkey = l_suppkey
- AND ps_suppkey = l_suppkey
- AND ps_partkey = l_partkey
- AND p_partkey = l_partkey
- AND o_orderkey = l_orderkey
- AND s_nationkey = n_nationkey
- AND p_name like '%green%'
- ) AS profit
- GROUP BY
- nation,
- o_year
- ORDER BY
- nation,
- o_year DESC;
- 172 values hashing to b0fbcce5ec14e4786bb47cc6a365d7e3
- # Query 10
- > SELECT
- c_custkey,
- c_name,
- sum(l_extendedprice * (1 - l_discount)) AS revenue,
- c_acctbal,
- n_name,
- c_address,
- c_phone,
- c_comment
- FROM
- customer,
- orders,
- lineitem,
- nation
- WHERE
- c_custkey = o_custkey
- AND l_orderkey = o_orderkey
- AND o_orderdate >= DATE '1993-10-01'
- AND o_orderdate < DATE '1994-01-01'
- AND o_orderdate < DATE '1993-10-01' + INTERVAL '3' month
- AND l_returnflag = 'R'
- AND c_nationkey = n_nationkey
- GROUP BY
- c_custkey,
- c_name,
- c_acctbal,
- c_phone,
- n_name,
- c_address,
- c_comment
- ORDER BY
- revenue DESC;
- 366 values hashing to 23dd20e994576aec9e5898b128a6b5a5
- # Query 11
- > SELECT
- ps_partkey,
- sum(ps_supplycost * ps_availqty) AS value
- FROM
- partsupp,
- supplier,
- nation
- WHERE
- ps_suppkey = s_suppkey
- AND s_nationkey = n_nationkey
- AND n_name = 'GERMANY'
- GROUP BY
- ps_partkey having
- sum(ps_supplycost * ps_availqty) > (
- SELECT
- sum(ps_supplycost * ps_availqty) * 0.0001
- FROM
- partsupp,
- supplier,
- nation
- WHERE
- ps_suppkey = s_suppkey
- AND s_nationkey = n_nationkey
- AND n_name = 'GERMANY'
- )
- ORDER BY
- value DESC;
- 103 values hashing to 2a4b6afc2de49adfe1cf81446d355cb1
- # Query 12
- > SELECT
- l_shipmode,
- sum(case
- when o_orderpriority = '1-URGENT'
- or o_orderpriority = '2-HIGH'
- then 1
- else 0
- end) AS high_line_count,
- sum(case
- when o_orderpriority <> '1-URGENT'
- AND o_orderpriority <> '2-HIGH'
- then 1
- else 0
- end) AS low_line_count
- FROM
- orders,
- lineitem
- WHERE
- o_orderkey = l_orderkey
- AND l_shipmode IN ('MAIL', 'SHIP')
- AND l_commitdate < l_receiptdate
- AND l_shipdate < l_commitdate
- AND l_receiptdate >= DATE '1994-01-01'
- AND l_receiptdate < DATE '1994-01-01' + INTERVAL '1' year
- GROUP BY
- l_shipmode
- ORDER BY
- l_shipmode;
- 2 values hashing to 3c31b94c99bd77e96003c2059416ed7a
- # Query 13
- > SELECT
- c_count,
- count(*) AS custdist
- FROM
- (
- SELECT
- c_custkey,
- count(o_orderkey) c_count
- FROM
- customer LEFT OUTER JOIN orders ON
- c_custkey = o_custkey
- AND o_comment NOT LIKE '%special%requests%'
- GROUP BY
- c_custkey
- ) AS c_orders
- GROUP BY
- c_count
- ORDER BY
- custdist DESC,
- c_count DESC;
- 24 values hashing to 0425a49d65f09ba044a8ae4e34fe2fef
- # Query 14
- > SELECT
- 100.00 * sum(case
- when p_type like 'PROMO%'
- then l_extendedprice * (1 - l_discount)
- else 0
- end) / sum(l_extendedprice * (1 - l_discount)) AS promo_revenue
- FROM
- lineitem,
- part
- WHERE
- l_partkey = p_partkey
- AND l_shipdate >= DATE '1995-09-01'
- AND l_shipdate < DATE '1995-09-01' + INTERVAL '1' month;
- 1 values hashing to 52009b01ec2cea22a360dbb1de1e5acf
- # Query 15
- > SELECT
- s_suppkey,
- s_name,
- s_address,
- s_phone,
- total_revenue
- FROM
- supplier,
- revenue
- WHERE
- s_suppkey = supplier_no
- AND total_revenue = (
- SELECT
- max(total_revenue)
- FROM
- revenue
- )
- ORDER BY
- s_suppkey;
- 1 values hashing to cef6c8859cb05a1680529bf4b688bbdb
- # Query 16
- > SELECT
- p_brand,
- p_type,
- p_size,
- count(DISTINCT ps_suppkey) AS supplier_cnt
- FROM
- partsupp,
- part
- WHERE
- p_partkey = ps_partkey
- AND p_brand <> 'Brand#45'
- AND p_type NOT LIKE 'MEDIUM POLISHED%'
- AND p_size IN (49, 14, 23, 45, 19, 3, 36, 9)
- AND ps_suppkey NOT IN (
- SELECT
- s_suppkey
- FROM
- supplier
- WHERE
- s_comment like '%Customer%Complaints%'
- )
- GROUP BY
- p_brand,
- p_type,
- p_size
- ORDER BY
- supplier_cnt DESC,
- p_brand,
- p_type,
- p_size;
- 309 values hashing to c4a6eb0207205cae9790096e7e4381d7
- # Query 17
- > SELECT
- sum(l_extendedprice) / 7.0 AS avg_yearly
- FROM
- lineitem,
- part
- WHERE
- p_partkey = l_partkey
- AND p_brand = 'Brand#23'
- AND p_container = 'MED BOX'
- AND l_quantity < (
- SELECT
- 0.2 * avg(l_quantity)
- FROM
- lineitem
- WHERE
- l_partkey = p_partkey
- );
- 1 values hashing to 6ea48615d6dd1ff31045cd67a15ef60a
- # Query 18
- > SELECT
- c_name,
- c_custkey,
- o_orderkey,
- o_orderdate,
- o_totalprice,
- sum(l_quantity)
- FROM
- customer,
- orders,
- lineitem
- WHERE
- o_orderkey IN (
- SELECT
- l_orderkey
- FROM
- lineitem
- GROUP BY
- l_orderkey having
- sum(l_quantity) > 300
- )
- AND c_custkey = o_custkey
- AND o_orderkey = l_orderkey
- GROUP BY
- c_name,
- c_custkey,
- o_orderkey,
- o_orderdate,
- o_totalprice
- ORDER BY
- o_totalprice DESC,
- o_orderdate;
- 3 values hashing to 321256b5aef1aedab78f125c5925de92
- # Query 19
- > SELECT
- sum(l_extendedprice* (1 - l_discount)) AS revenue
- FROM
- lineitem,
- part
- WHERE
- (
- p_partkey = l_partkey
- AND p_brand = 'Brand#12'
- AND p_container IN ('SM CASE', 'SM BOX', 'SM PACK', 'SM PKG')
- AND l_quantity >= CAST (1 AS smallint) AND l_quantity <= CAST (1 + 10 AS smallint)
- AND p_size BETWEEN CAST (1 AS smallint) AND CAST (5 AS smallint)
- AND l_shipmode IN ('AIR', 'AIR REG')
- AND l_shipinstruct = 'DELIVER IN PERSON'
- )
- or
- (
- p_partkey = l_partkey
- AND p_brand = 'Brand#23'
- AND p_container IN ('MED BAG', 'MED BOX', 'MED PKG', 'MED PACK')
- AND l_quantity >= CAST (10 AS smallint) AND l_quantity <= CAST (10 + 10 AS smallint)
- AND p_size BETWEEN CAST (1 AS smallint) AND CAST (10 AS smallint)
- AND l_shipmode IN ('AIR', 'AIR REG')
- AND l_shipinstruct = 'DELIVER IN PERSON'
- )
- or
- (
- p_partkey = l_partkey
- AND p_brand = 'Brand#34'
- AND p_container IN ('LG CASE', 'LG BOX', 'LG PACK', 'LG PKG')
- AND l_quantity >= CAST (20 AS smallint) AND l_quantity <= CAST (20 + 10 AS smallint)
- AND p_size BETWEEN CAST (1 AS smallint) AND CAST (15 AS smallint)
- AND l_shipmode IN ('AIR', 'AIR REG')
- AND l_shipinstruct = 'DELIVER IN PERSON'
- );
- 1 values hashing to 7df1074bd6f415369eb335bff3ad1781
- # Query 20
- > SELECT
- s_name,
- s_address
- FROM
- supplier,
- nation
- WHERE
- s_suppkey IN (
- SELECT
- ps_suppkey
- FROM
- partsupp
- WHERE
- ps_partkey IN (
- SELECT
- p_partkey
- FROM
- part
- WHERE
- p_name like 'forest%'
- )
- AND ps_availqty > (
- SELECT
- 0.5 * sum(l_quantity)
- FROM
- lineitem
- WHERE
- l_partkey = ps_partkey
- AND l_suppkey = ps_suppkey
- AND l_shipdate >= DATE '1995-01-01'
- AND l_shipdate < DATE '1995-01-01' + INTERVAL '1' year
- )
- )
- AND s_nationkey = n_nationkey
- AND n_name = 'CANADA'
- ORDER BY
- s_name;
- 2 values hashing to d093f99c74b217399be0eccc998662af
- # Query 21
- > SELECT
- s_name,
- count(*) AS numwait
- FROM
- supplier,
- lineitem l1,
- orders,
- nation
- WHERE
- s_suppkey = l1.l_suppkey
- AND o_orderkey = l1.l_orderkey
- AND o_orderstatus = 'F'
- AND l1.l_receiptdate > l1.l_commitdate
- AND EXISTS (
- SELECT
- *
- FROM
- lineitem l2
- WHERE
- l2.l_orderkey = l1.l_orderkey
- AND l2.l_suppkey <> l1.l_suppkey
- )
- AND not EXISTS (
- SELECT
- *
- FROM
- lineitem l3
- WHERE
- l3.l_orderkey = l1.l_orderkey
- AND l3.l_suppkey <> l1.l_suppkey
- AND l3.l_receiptdate > l3.l_commitdate
- )
- AND s_nationkey = n_nationkey
- AND n_name = 'SAUDI ARABIA'
- GROUP BY
- s_name
- ORDER BY
- numwait DESC,
- s_name;
- 2 values hashing to fd48e843525a4c80b8fe0b7064b35254
- # Query 22
- > SELECT
- cntrycode,
- count(*) AS numcust,
- sum(c_acctbal) AS totacctbal
- FROM
- (
- SELECT
- substring(c_phone, 1, 2) AS cntrycode, c_acctbal
- FROM
- customer
- WHERE
- substring(c_phone, 1, 2)
- IN ('13', '31', '23', '29', '30', '18', '17')
- AND c_acctbal
- > (
- SELECT
- avg(c_acctbal)
- FROM
- customer
- WHERE
- c_acctbal > 0.00
- AND substring(c_phone, 1, 2)
- IN (
- '13',
- '31',
- '23',
- '29',
- '30',
- '18',
- '17'
- )
- )
- AND NOT
- EXISTS(
- SELECT
- *
- FROM
- orders
- WHERE
- o_custkey = c_custkey
- )
- )
- AS custsale
- GROUP BY
- cntrycode
- ORDER BY
- cntrycode;
- 7 values hashing to 3782c67124c71b5bcb3460934dec46de
- > DROP SOURCE gen CASCADE
|