q5.sql 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. -- TPC-H/TPC-R Local Supplier Volume Query (Q5)
  2. -- TPC TPC-H Parameter Substitution (Version 2.17.2 build 0)
  3. -- using 1680793381 as a seed to the RNG
  4. $join1 = (
  5. select
  6. o.o_orderkey as o_orderkey,
  7. o.o_orderdate as o_orderdate,
  8. c.c_nationkey as c_nationkey
  9. from
  10. plato.customer as c
  11. join
  12. plato.orders as o
  13. on
  14. c.c_custkey = o.o_custkey
  15. );
  16. $join2 = (
  17. select
  18. j.o_orderkey as o_orderkey,
  19. j.o_orderdate as o_orderdate,
  20. j.c_nationkey as c_nationkey,
  21. l.l_extendedprice as l_extendedprice,
  22. l.l_discount as l_discount,
  23. l.l_suppkey as l_suppkey
  24. from
  25. $join1 as j
  26. join
  27. plato.lineitem as l
  28. on
  29. l.l_orderkey = j.o_orderkey
  30. );
  31. $join3 = (
  32. select
  33. j.o_orderkey as o_orderkey,
  34. j.o_orderdate as o_orderdate,
  35. j.c_nationkey as c_nationkey,
  36. j.l_extendedprice as l_extendedprice,
  37. j.l_discount as l_discount,
  38. j.l_suppkey as l_suppkey,
  39. s.s_nationkey as s_nationkey
  40. from
  41. $join2 as j
  42. join
  43. plato.supplier as s
  44. on
  45. j.l_suppkey = s.s_suppkey
  46. );
  47. $join4 = (
  48. select
  49. j.o_orderkey as o_orderkey,
  50. j.o_orderdate as o_orderdate,
  51. j.c_nationkey as c_nationkey,
  52. j.l_extendedprice as l_extendedprice,
  53. j.l_discount as l_discount,
  54. j.l_suppkey as l_suppkey,
  55. j.s_nationkey as s_nationkey,
  56. n.n_regionkey as n_regionkey,
  57. n.n_name as n_name
  58. from
  59. $join3 as j
  60. join
  61. plato.nation as n
  62. on
  63. j.s_nationkey = n.n_nationkey
  64. and j.c_nationkey = n.n_nationkey
  65. );
  66. $join5 = (
  67. select
  68. j.o_orderkey as o_orderkey,
  69. j.o_orderdate as o_orderdate,
  70. j.c_nationkey as c_nationkey,
  71. j.l_extendedprice as l_extendedprice,
  72. j.l_discount as l_discount,
  73. j.l_suppkey as l_suppkey,
  74. j.s_nationkey as s_nationkey,
  75. j.n_regionkey as n_regionkey,
  76. j.n_name as n_name,
  77. r.r_name as r_name
  78. from
  79. $join4 as j
  80. join
  81. plato.region as r
  82. on
  83. j.n_regionkey = r.r_regionkey
  84. );
  85. $border = Date("1995-01-01");
  86. select
  87. n_name,
  88. sum(l_extendedprice * (1 - l_discount)) as revenue
  89. from
  90. $join5
  91. where
  92. r_name = 'AFRICA'
  93. and CAST(o_orderdate AS Timestamp) >= $border
  94. and CAST(o_orderdate AS Timestamp) < ($border + Interval("P365D"))
  95. group by
  96. n_name
  97. order by
  98. revenue desc;