Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- set @startdate1 = '2019-01-01';
- select
- A.mid,
- month(A.signupdate) as month,
- IFNULL(A.signupdate,0) as signupdate,
- IFNULL(B.docuploaddate,0) as docuploaddate,
- IFNULL(F.doc_aprrove_date,0) as doc_aprrove_date,
- IFNULL(D.carduploaddate,0) as carduploaddate,
- IFNULL(E.MFTData,0) as MFTData,
- IFNULL(A.signups,0) as signups,
- IFNULL(B.DocUploaded,0) as DocUploaded,
- IFNULL(B.DocApproved,0) as DocApproved,
- IFNULL(D.cardupload,0) as cardupload,
- IFNULL(E.MFTs,0) as MFTs,
- datediff(B.docuploaddate, A.signupdate) as SignUp_to_Docupload,
- IFNULL(datediff(F.doc_aprrove_date, B.docuploaddate),0) as Docupload_to_Docapproved,
- datediff(D.carduploaddate, A.signupdate) as SignUp_to_carduploaddate,
- datediff(E.MFTData, A.signupdate) as SignUp_to_MFT
- from
- (select
- distinct m.id as mid,
- Date(m.created_at + interval '8' hour) as signupdate,
- count(distinct m.id) as signups
- from members m
- where m.imaginary = 'normal'
- and date(m.created_at + interval 8 hour) >= @startdate1
- group by 1) A
- left join
- (select
- distinct dl.member_id as mid,
- date(dl.created_at + interval '8' hour) as docuploaddate,
- count(distinct dl.member_id) as DocUploaded,
- count(distinct case when dl.state = 'approved' then dl.member_id end) as DocApproved
- from driver_licenses dl
- group by 1) B
- on A.mid = B.mid
- left join
- (select
- distinct pm.member_id as mid,
- Date(pm.created_at + interval '8' hour) as carduploaddate,
- count(distinct pm.member_id) as cardupload
- from
- payment_methods as pm
- where pm.state = 'approved'
- group by 1) D
- on D.mid = A.mid
- left join
- (select
- distinct c.member_id as mid,
- Date(c.created_at + interval '8' hour) as MFTData,
- count(distinct case when c.kind = 'subscriptionFee' then c.member_id end) as MFTs
- from charges c
- group by 1) E
- on A.mid = E.mid
- left join
- (select
- distinct dl.member_id as mid,
- date(dl.updated_at + interval '8' hour) as doc_aprrove_date
- from driver_licenses dl
- where dl.state = 'approved'
- group by 1) F
- on A.mid = F.mid
- where E.MFTs = '1';
- set @startdate1 = '2019-01-01';
- Select
- I.month as month,
- avg(SignUp_to_Docupload) as SignUp_to_Docupload,
- avg(Docupload_to_Docapproved) as Docupload_to_Docapproved,
- avg(SignUp_to_carduploaddate) as SignUp_to_carduploaddate,
- avg(SignUp_to_MFT) as SignUp_to_MFT
- from
- (select
- A.mid,
- month(A.signupdate) as month,
- IFNULL(A.signupdate,0) as signupdate,
- IFNULL(B.docuploaddate,0) as docuploaddate,
- IFNULL(F.doc_aprrove_date,0) as doc_aprrove_date,
- IFNULL(D.carduploaddate,0) as carduploaddate,
- IFNULL(E.MFTData,0) as MFTData,
- IFNULL(A.signups,0) as signups,
- IFNULL(B.DocUploaded,0) as DocUploaded,
- IFNULL(B.DocApproved,0) as DocApproved,
- IFNULL(D.cardupload,0) as cardupload,
- IFNULL(E.MFTs,0) as MFTs,
- datediff(B.docuploaddate, A.signupdate) as SignUp_to_Docupload,
- datediff(F.doc_aprrove_date, B.docuploaddate) as Docupload_to_Docapproved,
- datediff(D.carduploaddate, A.signupdate) as SignUp_to_carduploaddate,
- datediff(E.MFTData, A.signupdate) as SignUp_to_MFT
- from
- (select
- distinct m.id as mid,
- Date(m.created_at + interval '8' hour) as signupdate,
- count(distinct m.id) as signups
- from members m
- where m.imaginary = 'normal'
- and date(m.created_at + interval 8 hour) >= @startdate1
- group by 1) A
- left join
- (select
- distinct dl.member_id as mid,
- date(dl.created_at + interval '8' hour) as docuploaddate,
- count(distinct dl.member_id) as DocUploaded,
- count(distinct case when dl.state = 'approved' then dl.member_id end) as DocApproved
- from driver_licenses dl
- group by 1) B
- on A.mid = B.mid
- left join
- (select
- distinct pm.member_id as mid,
- Date(pm.created_at + interval '8' hour) as carduploaddate,
- count(distinct pm.member_id) as cardupload
- from
- payment_methods as pm
- where pm.state = 'approved'
- group by 1) D
- on D.mid = A.mid
- left join
- (select
- distinct c.member_id as mid,
- Date(c.created_at + interval '8' hour) as MFTData,
- count(distinct case when c.kind = 'subscriptionFee' then c.member_id end) as MFTs
- from charges c
- group by 1) E
- on A.mid = E.mid
- left join
- (select
- distinct dl.member_id as mid,
- date(dl.updated_at + interval '8' hour) as doc_aprrove_date
- from driver_licenses dl
- where dl.state = 'approved'
- group by 1) F
- on A.mid = F.mid
- where E.MFTs = '1') I
- group by 1
Advertisement
Add Comment
Please, Sign In to add comment