| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- drop view q21_tmp1_cached;
- drop view q21_tmp2_cached;
- create view q21_tmp1_cached as
- select
- l_orderkey,
- count(distinct l_suppkey) as count_suppkey,
- max(l_suppkey) as max_suppkey
- from
- lineitem
- where
- l_orderkey is not null
- group by
- l_orderkey;
- create view q21_tmp2_cached as
- select
- l_orderkey,
- count(distinct l_suppkey) count_suppkey,
- max(l_suppkey) as max_suppkey
- from
- lineitem
- where
- l_receiptdate > l_commitdate
- and l_orderkey is not null
- group by
- l_orderkey;
- select
- s_name,
- count(1) as numwait
- from (
- select s_name from (
- select
- s_name,
- t2.l_orderkey,
- l_suppkey,
- count_suppkey,
- max_suppkey
- from
- q21_tmp2_cached t2 right outer join (
- select
- s_name,
- l_orderkey,
- l_suppkey from (
- select
- s_name,
- t1.l_orderkey,
- l_suppkey,
- count_suppkey,
- max_suppkey
- from
- q21_tmp1_cached t1 join (
- select
- s_name,
- l_orderkey,
- l_suppkey
- from
- orders o join (
- select
- s_name,
- l_orderkey,
- l_suppkey
- from
- nation n join supplier s
- on
- s.s_nationkey = n.n_nationkey
- and n.n_name = 'SAUDI ARABIA'
- join lineitem l
- on
- s.s_suppkey = l.l_suppkey
- where
- l.l_receiptdate > l.l_commitdate
- and l.l_orderkey is not null
- ) l1 on o.o_orderkey = l1.l_orderkey and o.o_orderstatus = 'F'
- ) l2 on l2.l_orderkey = t1.l_orderkey
- ) a
- where
- (count_suppkey > 1)
- or ((count_suppkey=1)
- and (l_suppkey <> max_suppkey))
- ) l3 on l3.l_orderkey = t2.l_orderkey
- ) b
- where
- (count_suppkey is null)
- or ((count_suppkey=1)
- and (l_suppkey = max_suppkey))
- ) c
- group by
- s_name
- order by
- numwait desc,
- s_name
- limit 100;
|