ahmedrahil786

Signup to MFT by month and MID - 2 queries

Oct 2nd, 2019
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.14 KB | None | 0 0
  1.  
  2. set @startdate1 = '2019-01-01';
  3. select
  4. A.mid,
  5. month(A.signupdate) as month,
  6. IFNULL(A.signupdate,0) as signupdate,
  7. IFNULL(B.docuploaddate,0) as docuploaddate,
  8. IFNULL(F.doc_aprrove_date,0) as doc_aprrove_date,
  9. IFNULL(D.carduploaddate,0) as carduploaddate,
  10. IFNULL(E.MFTData,0) as MFTData,
  11. IFNULL(A.signups,0) as signups,
  12. IFNULL(B.DocUploaded,0) as DocUploaded,
  13. IFNULL(B.DocApproved,0) as DocApproved,
  14. IFNULL(D.cardupload,0) as cardupload,
  15. IFNULL(E.MFTs,0) as MFTs,
  16. datediff(B.docuploaddate, A.signupdate) as SignUp_to_Docupload,
  17. IFNULL(datediff(F.doc_aprrove_date, B.docuploaddate),0) as Docupload_to_Docapproved,
  18. datediff(D.carduploaddate, A.signupdate) as SignUp_to_carduploaddate,
  19. datediff(E.MFTData, A.signupdate) as SignUp_to_MFT
  20. from
  21. (select
  22. distinct m.id as mid,
  23. Date(m.created_at + interval '8' hour) as signupdate,
  24. count(distinct m.id) as signups
  25. from members m
  26. where m.imaginary = 'normal'
  27. and date(m.created_at + interval 8 hour) >= @startdate1
  28. group by 1) A
  29. left join
  30. (select
  31. distinct dl.member_id as mid,
  32. date(dl.created_at + interval '8' hour) as docuploaddate,
  33. count(distinct dl.member_id) as DocUploaded,
  34. count(distinct case when dl.state = 'approved' then dl.member_id end) as DocApproved
  35. from driver_licenses dl
  36. group by 1) B
  37. on A.mid = B.mid
  38. left join
  39. (select
  40. distinct pm.member_id as mid,
  41. Date(pm.created_at + interval '8' hour) as carduploaddate,
  42. count(distinct pm.member_id) as cardupload
  43. from
  44. payment_methods as pm
  45. where pm.state = 'approved'
  46. group by 1) D
  47. on D.mid = A.mid
  48. left join
  49. (select
  50. distinct c.member_id as mid,
  51. Date(c.created_at + interval '8' hour) as MFTData,
  52. count(distinct case when c.kind = 'subscriptionFee' then c.member_id end) as MFTs
  53. from charges c
  54. group by 1) E
  55. on A.mid = E.mid
  56. left join
  57. (select
  58. distinct dl.member_id as mid,
  59. date(dl.updated_at + interval '8' hour) as doc_aprrove_date
  60. from driver_licenses dl
  61. where dl.state = 'approved'
  62. group by 1) F
  63. on A.mid = F.mid
  64. where E.MFTs = '1';
  65.  
  66.  
  67.  
  68. set @startdate1 = '2019-01-01';
  69.  
  70. Select
  71. I.month as month,
  72. avg(SignUp_to_Docupload) as SignUp_to_Docupload,
  73. avg(Docupload_to_Docapproved) as Docupload_to_Docapproved,
  74. avg(SignUp_to_carduploaddate) as SignUp_to_carduploaddate,
  75. avg(SignUp_to_MFT) as SignUp_to_MFT
  76. from
  77.  
  78. (select
  79. A.mid,
  80. month(A.signupdate) as month,
  81. IFNULL(A.signupdate,0) as signupdate,
  82. IFNULL(B.docuploaddate,0) as docuploaddate,
  83. IFNULL(F.doc_aprrove_date,0) as doc_aprrove_date,
  84. IFNULL(D.carduploaddate,0) as carduploaddate,
  85. IFNULL(E.MFTData,0) as MFTData,
  86. IFNULL(A.signups,0) as signups,
  87. IFNULL(B.DocUploaded,0) as DocUploaded,
  88. IFNULL(B.DocApproved,0) as DocApproved,
  89. IFNULL(D.cardupload,0) as cardupload,
  90. IFNULL(E.MFTs,0) as MFTs,
  91. datediff(B.docuploaddate, A.signupdate) as SignUp_to_Docupload,
  92. datediff(F.doc_aprrove_date, B.docuploaddate) as Docupload_to_Docapproved,
  93. datediff(D.carduploaddate, A.signupdate) as SignUp_to_carduploaddate,
  94. datediff(E.MFTData, A.signupdate) as SignUp_to_MFT
  95. from
  96. (select
  97. distinct m.id as mid,
  98. Date(m.created_at + interval '8' hour) as signupdate,
  99. count(distinct m.id) as signups
  100. from members m
  101. where m.imaginary = 'normal'
  102. and date(m.created_at + interval 8 hour) >= @startdate1
  103. group by 1) A
  104. left join
  105. (select
  106. distinct dl.member_id as mid,
  107. date(dl.created_at + interval '8' hour) as docuploaddate,
  108. count(distinct dl.member_id) as DocUploaded,
  109. count(distinct case when dl.state = 'approved' then dl.member_id end) as DocApproved
  110. from driver_licenses dl
  111. group by 1) B
  112. on A.mid = B.mid
  113. left join
  114. (select
  115. distinct pm.member_id as mid,
  116. Date(pm.created_at + interval '8' hour) as carduploaddate,
  117. count(distinct pm.member_id) as cardupload
  118. from
  119. payment_methods as pm
  120. where pm.state = 'approved'
  121. group by 1) D
  122. on D.mid = A.mid
  123. left join
  124. (select
  125. distinct c.member_id as mid,
  126. Date(c.created_at + interval '8' hour) as MFTData,
  127. count(distinct case when c.kind = 'subscriptionFee' then c.member_id end) as MFTs
  128. from charges c
  129. group by 1) E
  130. on A.mid = E.mid
  131. left join
  132. (select
  133. distinct dl.member_id as mid,
  134. date(dl.updated_at + interval '8' hour) as doc_aprrove_date
  135. from driver_licenses dl
  136. where dl.state = 'approved'
  137. group by 1) F
  138. on A.mid = F.mid
  139. where E.MFTs = '1') I
  140. group by 1
Advertisement
Add Comment
Please, Sign In to add comment