q15.sql 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. -- ignore runonopt plan diff
  2. -- TPC-H/TPC-R Top Supplier Query (Q15)
  3. -- TPC TPC-H Parameter Substitution (Version 2.17.2 build 0)
  4. -- using 1680793381 as a seed to the RNG
  5. $border = Date("1997-03-01");
  6. $revenue0 = (
  7. select
  8. l_suppkey as supplier_no,
  9. sum(l_extendedprice * (1 - l_discount)) as total_revenue,
  10. cast(sum(l_extendedprice * (1 - l_discount)) as Uint64) as total_revenue_approx
  11. from
  12. plato.lineitem
  13. where
  14. cast(l_shipdate as timestamp) >= $border
  15. and cast(l_shipdate as timestamp) < ($border + Interval("P92D"))
  16. group by
  17. l_suppkey
  18. );
  19. $max_revenue = (
  20. select
  21. max(total_revenue_approx) as max_revenue
  22. from
  23. $revenue0
  24. );
  25. $join1 = (
  26. select
  27. s.s_suppkey as s_suppkey,
  28. s.s_name as s_name,
  29. s.s_address as s_address,
  30. s.s_phone as s_phone,
  31. r.total_revenue as total_revenue,
  32. r.total_revenue_approx as total_revenue_approx
  33. from
  34. plato.supplier as s
  35. join
  36. $revenue0 as r
  37. on
  38. s.s_suppkey = r.supplier_no
  39. );
  40. select
  41. j.s_suppkey as s_suppkey,
  42. j.s_name as s_name,
  43. j.s_address as s_address,
  44. j.s_phone as s_phone,
  45. j.total_revenue as total_revenue
  46. from
  47. $join1 as j
  48. join
  49. $max_revenue as m
  50. on
  51. j.total_revenue_approx = m.max_revenue
  52. order by
  53. s_suppkey;