ahmedrahil786

TTT - MFT , Bookings - Coupon wise - Nick

Jun 5th, 2020
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.44 KB | None | 0 0
  1. /* Coupon by Month [Brief version] */
  2. select C.year, C.month, case when C.coupon_name is null then '' else C.coupon_name end as coupon_name,
  3. C.bookings, coalesce(D.MFT, 0) as MFT, C.MAU, C.gross_rev, C.net_rev,
  4. ROUND(C.coupon_rate*100, 2) as coupon_rate, C.coupon_description from
  5. (select extract('year' from b.request_start_at) as year,
  6. extract('month' from b.request_start_at) as month, p.code as coupon_name, p.description as coupon_description,
  7. count(distinct b.id) as bookings, count(distinct b.user_id) as MAU, sum(b.gross_amount) as gross_rev,
  8. sum(b.gross_amount) - sum(b.net_amount) as coupon, sum(b.net_amount) as net_rev,
  9. (sum(b.gross_amount) - sum(b.net_amount)) / sum(b.gross_amount) as coupon_rate
  10. from bookings b
  11. left JOIN booking_promos bp ON bp.booking_id=b.id
  12. LEFT JOIN promos p ON bp.promo_id=p.id
  13. where b.status = 'completed' and b.request_start_at between '2020-01-01' and '2020-06-30'
  14. group by 1,2,3,4) C
  15. left join
  16. (SELECT extract('year' from b.request_start_at) as year,
  17. extract('month' from b.request_start_at) as month,
  18. p.code as coupon_name, p.description as coupon_description,
  19. count(b.id) as MFT FROM bookings b
  20. left JOIN booking_promos bp ON bp.booking_id=b.id
  21. LEFT JOIN promos p ON bp.promo_id=p.id
  22. JOIN users u ON b.user_id = u.id
  23. WHERE b.id IN (SELECT min(id) FROM bookings WHERE status IN ('completed') GROUP BY user_id)
  24. GROUP BY 1,2,3,4) D
  25. on C.year = D.year and C.month = D.month and C.coupon_name = D.coupon_name
Advertisement
Add Comment
Please, Sign In to add comment