ahmedrahil786

Signup to Doc Approved - Rahil

Jun 10th, 2020
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.28 KB | None | 0 0
  1. set @start = '2020-01-01';
  2.  
  3. select
  4. (A.month) as month,
  5. sum(A.signups) as signups,
  6. sum(B.DocUploaded) as DocUploaded,
  7. sum(B.DocApproved) as DocApproved,
  8. sum(B.DocRejected) as DocRejected,
  9. sum(C.payment_approved) as payment_approved
  10. from
  11.  
  12. (select
  13. m.id as mid,
  14. month(m.created_at + interval '8' hour) as month,
  15. count(distinct m.id) as signups
  16. from members m
  17. where m.imaginary = 'normal'
  18. and date(m.created_at + interval 8 hour) >= @start
  19. group by 1) A
  20. left join
  21. (select
  22. dl.member_id as mid,
  23. month(dl.created_at + interval '8' hour) as month,
  24. count(distinct case when dl.state not in ('noInput','null') then dl.member_id end) DocUploaded,
  25. count(distinct case when dl.state = 'approved' then dl.member_id end) DocApproved,
  26. count(distinct case when dl.state = 'reject' then dl.member_id end) DocRejected
  27. from driver_licenses dl
  28. join members m
  29. on m.id = dl.member_id
  30. where dl.created_at + interval '8' hour >= @start
  31. and m.imaginary = 'normal'
  32. group by 1) B
  33. on A.mid = B.mid
  34. left join
  35. (select
  36. pm.member_id as mid,
  37. month(pm.created_at + interval '8' hour) as month,
  38. count(distinct case when pm.state = 'approved' then pm.member_id end) payment_approved
  39. from
  40. payment_methods as pm
  41. where pm.created_at + interval '8' hour >= @start
  42. group by 1) C
  43. on A.mid = C.mid
  44. group by 1
Advertisement
Add Comment
Please, Sign In to add comment