123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671 |
- -- 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.
- -- Queries for to workload of the `TPCH` benchmarking scenario.
- -- name: Q01
- 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;
- -- name: Q02
- 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;
- -- name: Q03
- 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;
- -- name: Q04
- 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;
- -- name: Q05
- 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;
- -- name: Q06
- 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;
- -- name: Q07
- 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;
- -- name: Q08
- 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;
- -- name: Q09
- 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;
- -- name: Q10
- 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;
- -- name: Q11
- 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;
- -- name: Q12
- 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;
- -- name: Q13
- SELECT
- c_count,
- count(*) AS custdist
- FROM
- (
- SELECT
- c_custkey,
- count(o_orderkey) c_count -- workaround for no column aliases
- 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 -- (c_custkey, c_count) -- no column aliases yet
- GROUP BY
- c_count
- ORDER BY
- custdist DESC,
- c_count DESC;
- -- name: Q14
- 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;
- -- name: Q15
- 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;
- -- name: Q16
- 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;
- -- name: Q17
- 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
- );
- -- name: Q18
- 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;
- -- name: Q19
- 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'
- );
- -- name: Q20
- 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;
- -- name: Q21
- 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;
- -- name: Q22
- 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;
|