q2.sql 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. -- TPC-H/TPC-R Minimum Cost Supplier Query (Q2)
  2. -- using 1680793381 as a seed to the RNG
  3. $r = (select r_regionkey from
  4. plato.region
  5. where r_name='AMERICA');
  6. $j1 = (select n_name,n_nationkey
  7. from plato.nation as n
  8. join $r as r on
  9. n.n_regionkey = r.r_regionkey);
  10. $j2 = (select s_acctbal,s_name,s_address,s_phone,s_comment,n_name,s_suppkey
  11. from plato.supplier as s
  12. join $j1 as j on
  13. s.s_nationkey = j.n_nationkey
  14. );
  15. $j3 = (select ps_partkey,ps_supplycost,s_acctbal,s_name,s_address,s_phone,s_comment,n_name
  16. from plato.partsupp as ps
  17. join $j2 as j on
  18. ps.ps_suppkey = j.s_suppkey
  19. );
  20. $min_ps_supplycost = (select min(ps_supplycost) as min_ps_supplycost,ps_partkey
  21. from $j3
  22. group by ps_partkey
  23. );
  24. $p = (select p_partkey,p_mfgr
  25. from plato.part
  26. where
  27. p_size = 10
  28. and p_type like '%COPPER'
  29. );
  30. $j4 = (select s_acctbal,
  31. s_name,
  32. n_name,
  33. p_partkey,
  34. p_mfgr,
  35. s_address,
  36. s_phone,
  37. s_comment
  38. from $p as p
  39. join $j3 as j on p.p_partkey = j.ps_partkey
  40. join $min_ps_supplycost as m on p.p_partkey = m.ps_partkey
  41. where min_ps_supplycost=ps_supplycost
  42. );
  43. select
  44. s_acctbal,
  45. s_name,
  46. n_name,
  47. p_partkey,
  48. p_mfgr,
  49. s_address,
  50. s_phone,
  51. s_comment
  52. from $j4
  53. order by
  54. s_acctbal desc,
  55. n_name,
  56. s_name,
  57. p_partkey
  58. limit 100;