ahmedrahil786

Weekly KPI Index Sheet

Apr 23rd, 2019
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.29 KB | None | 0 0
  1. #set @start := '2018-12-31 00:00';
  2.  
  3. select
  4. A.Week,
  5. A.signups,
  6. B.DocUploaded,
  7. B.DocApproved,
  8. D.TotalMFTs,
  9. C.ActiveMembers,
  10. C.ridelength,
  11. A.MFT,
  12. C.Bookings,
  13. C.Charges,
  14. B.MaleApproved,
  15. B.FemaleApproved
  16.  
  17.  
  18. from (select
  19. WEEKOFYEAR(m.created_at + interval '8' hour) as Week,
  20. count(distinct m.id) as signups,
  21. count(distinct case when m.grade = 'paidMember' then m.id end) as PaidMembers,
  22. count(distinct case when r.state = 'completed' then m.id end ) as MFT
  23.  
  24. from members m
  25.  
  26. left outer join reservations r on
  27. r.member_id = m.id
  28.  
  29. where m.created_at + interval '8' hour >= @start
  30. and m.imaginary = 'normal'
  31. group by 1 ) A
  32.  
  33. join (select
  34. WEEKOFYEAR(dl.created_at + interval '8' hour) as Week,
  35. count(distinct dl.member_id) as DocUploaded,
  36. count(distinct case when dl.state = 'approved' then dl.member_id end) DocApproved,
  37. count(distinct case when dl.gender = 'man' then dl.member_id end) MaleApproved,
  38. count(distinct case when dl.gender = 'woman' then dl.member_id end) FemaleApproved
  39.  
  40. from driver_licenses dl
  41.  
  42. join members m
  43. on m.id = dl.member_id
  44.  
  45. where dl.created_at + interval '8' hour >= @start
  46. and m.imaginary = 'normal'
  47. group by 1) B
  48. on B.Week = A.Week
  49.  
  50. join (select
  51. WEEKOFYEAR(r.occupy_start_at + interval '8' hour) as Week,
  52. count(distinct case when r.state = 'completed' then r.member_id end) as ActiveMembers,
  53. count(distinct case when r.state = 'completed' then r.id end) as Bookings,
  54. sum(timestampdiff(minute,CONVERT_TZ(r.start_at, '+00:00', '+8:00'), CONVERT_TZ(r.end_at, '+00:00', '+8:00'))/60) as ridelength,
  55. sum(G.amount) as Charges
  56.  
  57.  
  58. from reservations r
  59.  
  60. left outer join (select
  61. ch.reservation_id as rid,
  62. sum(ch.amount) as amount
  63.  
  64. from payments ch
  65.  
  66.  
  67.  
  68. group by 1
  69.  
  70. ) G on G.rid = r.id
  71.  
  72.  
  73. join members m
  74. on m.id = r.member_id
  75.  
  76. where r.start_at + interval '8' hour >= @start
  77. and m.imaginary in ('normal')
  78. and r.state = 'completed'
  79.  
  80. group by 1) C on
  81. C.Week = B.Week
  82.  
  83. join (
  84. select
  85. WEEKOFYEAR(c.created_at + interval '8' hour) as Week,
  86. count(distinct case when c.kind = 'subscriptionFee' then c.member_id end) as TotalMFTs
  87.  
  88. from charges c
  89.  
  90. join members m
  91. on m.id = c.member_id
  92.  
  93. where c.created_at + interval '8' hour >= @start
  94. and m.imaginary = 'normal'
  95. group by 1) D on
  96. D.Week = C.Week
  97.  
  98.  
  99.  
  100.  
  101. group by 1
  102.  
  103. order by 1 asc;
Advertisement
Add Comment
Please, Sign In to add comment