mysql 测试集_TPC-H测试集

  • Post author:
  • Post category:mysql


SQL15 create view revenue0 (supplier_no, total_revenue) as

select

l_suppkey,

sum(l_extendedprice * (1 – l_discount))

from

lineitem

where

l_shipdate >= date ‘1995-02-01’

and l_shipdate < date ‘1995-02-01’ + interval ‘3’ month

group by

l_suppkey;

select

s_suppkey,

s_name,

s_address,

s_phone,

total_revenue

from

supplier,

revenue0

where

s_suppkey = supplier_no

and total_revenue = (

select

max(total_revenue)

from

revenue0

)

order by

s_suppkey;

drop view revenue0;

SQL16 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 ‘SMALL ANODIZED%’

and p_size in (47, 15, 37, 30, 46, 16, 18, 6)

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;

SQL17 select

sum(l_extendedprice) / 7.0 as avg_yearly

from

lineitem,

part

where

p_partkey = l_partkey

and p_brand = ‘Brand#51’

and p_container = ‘WRAP PACK’

and l_quantity < (

select

0.2 * avg(l_quantity)

from

lineitem

where

l_partkey = p_partkey

);

SQL18 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) > 312

)

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

limit 100;

SQL19 select

sum(l_extendedprice* (1 – l_discount)) as revenue

from

lineitem,

part

where

(

p_partkey = l_partkey

and p_brand = ‘Brand#52’

and p_container in (‘SM CASE’, ‘SM BOX’, ‘SM PACK’, ‘SM PKG’)

and l_quantity >= 3 and l_quantity <= 3 + 10

and p_size between 1 and 5

and l_shipmode in (‘AIR’, ‘AIR REG’)

and l_shipinstruct = ‘DELIVER IN PERSON’

)

or

(

p_partkey = l_partkey

and p_brand = ‘Brand#43’

and p_container in (‘MED BAG’, ‘MED BOX’, ‘MED PKG’, ‘MED PACK’)

and l_quantity >= 12 and l_quantity <= 12 + 10

and p_size between 1 and 10

and l_shipmode in (‘AIR’, ‘AIR REG’)

and l_shipinstruct = ‘DELIVER IN PERSON’

)

or

(

p_partkey = l_partkey

and p_brand = ‘Brand#52’

and p_container in (‘LG CASE’, ‘LG BOX’, ‘LG PACK’, ‘LG PKG’)

and l_quantity >= 21 and l_quantity <= 21 + 10

and p_size between 1 and 15

and l_shipmode in (‘AIR’, ‘AIR REG’)

and l_shipinstruct = ‘DELIVER IN PERSON’

);

SQL20 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 ‘drab%’

)

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 ‘1996-01-01’

and l_shipdate < date ‘1996-01-01’ + interval ‘1’ year

)

)

and s_nationkey = n_nationkey

and n_name = ‘KENYA’

order by

s_name;

SQL21 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 = ‘PERU’

group by

s_name

order by

numwait desc,

s_name

limit 100;

SQL22 select

cntrycode,

count(*) as numcust,

sum(c_acctbal) as totacctbal

from

(

select

substring(c_phone from 1 for 2) as cntrycode,

c_acctbal

from

customer

where

substring(c_phone from 1 for 2) in

(’24’, ’32’, ’17’, ’18’, ’12’, ’14’, ’22’)

and c_acctbal > (

select

avg(c_acctbal)

from

customer

where

c_acctbal > 0.00

and substring(c_phone from 1 for 2) in

(’24’, ’32’, ’17’, ’18’, ’12’, ’14’, ’22’)

)

and not exists (

select

*

from

orders

where

o_custkey = c_custkey

)

) as custsale

group by

cntrycode

order by

cntrycode;

说明 在Spark中,需要将substring(c_phone from 1 for 2)改写为substring(c_phone, 1, 2)。



版权声明:本文为weixin_39643679原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。