q10.sql 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. -- TPC-H/TPC-R Returned Item Reporting Query (Q10)
  2. -- TPC TPC-H Parameter Substitution (Version 2.17.2 build 0)
  3. -- using 1680793381 as a seed to the RNG
  4. $border = Date("1993-12-01");
  5. $join1 = (
  6. select
  7. c.c_custkey as c_custkey,
  8. c.c_name as c_name,
  9. c.c_acctbal as c_acctbal,
  10. c.c_address as c_address,
  11. c.c_phone as c_phone,
  12. c.c_comment as c_comment,
  13. c.c_nationkey as c_nationkey,
  14. o.o_orderkey as o_orderkey
  15. from
  16. plato.customer as c
  17. join
  18. plato.orders as o
  19. on
  20. c.c_custkey = o.o_custkey
  21. where
  22. cast(o.o_orderdate as timestamp) >= $border and
  23. cast(o.o_orderdate as timestamp) < ($border + Interval("P90D"))
  24. );
  25. $join2 = (
  26. select
  27. j.c_custkey as c_custkey,
  28. j.c_name as c_name,
  29. j.c_acctbal as c_acctbal,
  30. j.c_address as c_address,
  31. j.c_phone as c_phone,
  32. j.c_comment as c_comment,
  33. j.c_nationkey as c_nationkey,
  34. l.l_extendedprice as l_extendedprice,
  35. l.l_discount as l_discount
  36. from
  37. $join1 as j
  38. join
  39. plato.lineitem as l
  40. on
  41. l.l_orderkey = j.o_orderkey
  42. where
  43. l.l_returnflag = 'R'
  44. );
  45. $join3 = (
  46. select
  47. j.c_custkey as c_custkey,
  48. j.c_name as c_name,
  49. j.c_acctbal as c_acctbal,
  50. j.c_address as c_address,
  51. j.c_phone as c_phone,
  52. j.c_comment as c_comment,
  53. j.c_nationkey as c_nationkey,
  54. j.l_extendedprice as l_extendedprice,
  55. j.l_discount as l_discount,
  56. n.n_name as n_name
  57. from
  58. $join2 as j
  59. join
  60. plato.nation as n
  61. on
  62. n.n_nationkey = j.c_nationkey
  63. );
  64. select
  65. c_custkey,
  66. c_name,
  67. sum(l_extendedprice * (1 - l_discount)) as revenue,
  68. c_acctbal,
  69. n_name,
  70. c_address,
  71. c_phone,
  72. c_comment
  73. from
  74. $join3
  75. group by
  76. c_custkey,
  77. c_name,
  78. c_acctbal,
  79. c_phone,
  80. n_name,
  81. c_address,
  82. c_comment
  83. order by
  84. revenue desc
  85. limit 20;