| 123456789101112131415161718192021222324252627282930313233343536 |
- -- explain
- create temporary table l3 stored as orc as
- select l_orderkey, count(distinct l_suppkey) as cntSupp
- from lineitem
- where l_receiptdate > l_commitdate and l_orderkey is not null
- group by l_orderkey
- having cntSupp = 1
- ;
- with location as (
- select supplier.* from supplier, nation where
- s_nationkey = n_nationkey and n_name = 'SAUDI ARABIA'
- )
- select s_name, count(*) as numwait
- from
- (
- select li.l_suppkey, li.l_orderkey
- from lineitem li join orders o on li.l_orderkey = o.o_orderkey and
- o.o_orderstatus = 'F'
- join
- (
- select l_orderkey, count(distinct l_suppkey) as cntSupp
- from lineitem
- group by l_orderkey
- ) l2 on li.l_orderkey = l2.l_orderkey and
- li.l_receiptdate > li.l_commitdate and
- l2.cntSupp > 1
- ) l1 join l3 on l1.l_orderkey = l3.l_orderkey
- join location s on l1.l_suppkey = s.s_suppkey
- group by
- s_name
- order by
- numwait desc,
- s_name
- limit 100;
|