tpch_query20.sql 887 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. -- explain formatted
  2. with tmp1 as (
  3. select p_partkey from part where p_name like 'forest%'
  4. ),
  5. tmp2 as (
  6. select s_name, s_address, s_suppkey
  7. from supplier, nation
  8. where s_nationkey = n_nationkey
  9. and n_name = 'CANADA'
  10. ),
  11. tmp3 as (
  12. select l_partkey, 0.5 * sum(l_quantity) as sum_quantity, l_suppkey
  13. from lineitem, tmp2
  14. where l_shipdate >= '1994-01-01' and l_shipdate <= '1995-01-01'
  15. and l_suppkey = s_suppkey
  16. group by l_partkey, l_suppkey
  17. ),
  18. tmp4 as (
  19. select ps_partkey, ps_suppkey, ps_availqty
  20. from partsupp
  21. where ps_partkey IN (select p_partkey from tmp1)
  22. ),
  23. tmp5 as (
  24. select
  25. ps_suppkey
  26. from
  27. tmp4, tmp3
  28. where
  29. ps_partkey = l_partkey
  30. and ps_suppkey = l_suppkey
  31. and ps_availqty > sum_quantity
  32. )
  33. select
  34. s_name,
  35. s_address
  36. from
  37. supplier
  38. where
  39. s_suppkey IN (select ps_suppkey from tmp5)
  40. order by s_name;