Advertisement
festinko

Untitled

Sep 13th, 2022
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 0.87 KB | None | 0 0
  1. WITH preparedData as(
  2. SELECT
  3.     userID,
  4.     paymentAmount,
  5.     paymentPeriod,
  6.     paymentDateTime,
  7.     p.productID,
  8.     productValue,
  9.     EXTRACT(YEAR_MONTH FROM paymentDateTime) as paymentMonth,
  10.     EXTRACT(YEAR_MONTH FROM DATE_ADD(paymentDateTime, INTERVAL paymentPeriod MONTH))
  11.    
  12. FROM
  13.     payments p
  14. LEFT JOIN
  15.     products pr
  16. ON p.productID = pr.productID
  17.    
  18. WHERE
  19.      202104 BETWEEN EXTRACT(YEAR_MONTH FROM paymentDateTime) AND EXTRACT(YEAR_MONTH FROM DATE_ADD(paymentDateTime, INTERVAL paymentPeriod MONTH))
  20.     AND paymentStatus = 1
  21.     AND paymentPeriod > 0
  22.     AND userID IS NOT NULL
  23.     AND productValue IN (50, 100, 150, 200, 300, 400, 500, 750, 1000, 1500, 2000, 3000, 4000, 5000, 6000, 10000, 12500, 20000, 27500))
  24.  
  25. SELECT
  26.  paymentPeriod,
  27.  productValue,
  28.  count(distinct userID)
  29.  
  30. FROM preparedData
  31.  
  32. GROUP BY
  33.     paymentperiod,
  34.     productValue
  35. ORDER BY
  36.     paymentPeriod,
  37.     productValue
  38.    
  39.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement