festinko

Untitled

Dec 21st, 2022
1,042
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 6.75 KB | None | 0 0
  1. WITH newSubs as (
  2.  
  3. /*New Subsscriptions*/
  4. SELECT
  5.     DATE(paymentDateTime) firstSubsPaymentDate,
  6.     DATE_FORMAT(paymentDateTime,'%x-%v') firstSubsPaymentWeekYear,
  7.   COUNT(DISTINCT userID) firstSubscriptionUsersCount_G4,
  8.     ROUND(SUM(paymentAmount)) firstSubscriptionRevenue,
  9.     ROUND(SUM(paymentAmount/paymentPeriod)) firstSubscriptionMRR
  10.  
  11. FROM
  12.   payments
  13.  
  14. WHERE
  15.   paymentNewUpgradeRenewal = 1
  16.   AND paymentPeriod IN (1,12)
  17.     AND paymentStatus = 1
  18.   AND userID IS NOT NULL
  19.  
  20. GROUP BY
  21.     firstSubsPaymentDate
  22.    
  23.  
  24. ORDER BY
  25.     firstSubsPaymentDate DESC),
  26.    
  27. newSigunps as (
  28.         SELECT
  29.             DATE(userRegisterDateTime) registerDate,
  30.             DATE_FORMAT(userRegisterDateTime,'%x-%v') registerDateWeekYear,
  31.             count(DISTINCT userID) newSigunUpsVerified_G2
  32.        
  33.         FROM
  34.             users
  35.        
  36.         WHERE
  37.             userStatus = 1
  38.             AND userID IS NOT NULL
  39.        
  40.         GROUP BY
  41.             registerDate
  42.     ),
  43.    
  44.     upgradedSubs as (
  45.     /*Upgraded Subsscriptions*/
  46.  
  47. SELECT
  48.     DATE(paymentDateTime) upgradedSubsPaymentDate,
  49.   COUNT(DISTINCT userID) upgradedSubscriptionUsersCount,
  50.     ROUND(SUM(paymentAmount)) upgradedSubscriptionRevenue,
  51.     ROUND(SUM(paymentAmount/paymentPeriod)) upgradedSubscriptionMRR
  52.  
  53. FROM
  54.   payments
  55.  
  56. WHERE
  57.   paymentNewUpgradeRenewal = 2
  58.   AND paymentPeriod IN (1,12)
  59.     AND paymentStatus = 1
  60.   AND userID IS NOT NULL
  61.  
  62. GROUP BY
  63.     upgradedSubsPaymentDate
  64.    
  65.  
  66. ORDER BY
  67.     upgradedSubsPaymentDate DESC
  68.     ),
  69.    
  70.     renewedSubs as (
  71.     /*Renewed Subsscriptions*/
  72.  
  73. SELECT
  74.     DATE(paymentDateTime) renewedSubsPaymentDate,
  75.   COUNT(DISTINCT userID) renewedSubscriptionUsersCount,
  76.     ROUND(SUM(paymentAmount)) renewedSubscriptionRevenue,
  77.     ROUND(SUM(paymentAmount/paymentPeriod)) renewedSubscriptionMRR
  78.  
  79. FROM
  80.   payments
  81.  
  82. WHERE
  83.   paymentNewUpgradeRenewal = 3
  84.   AND paymentPeriod IN (1,12)
  85.     AND paymentStatus = 1
  86.   AND userID IS NOT NULL
  87.  
  88. GROUP BY
  89.     renewedSubsPaymentDate
  90.    
  91.  
  92. ORDER BY
  93.     renewedSubsPaymentDate DESC
  94.     ),
  95.    
  96.     canceledSubs AS (
  97.         SELECT
  98.             DATE(cancelled) cancellDate,
  99.             count(userID) canceledSubsCount
  100.  
  101.         FROM
  102.             subscriptions
  103.  
  104.         GROUP BY
  105.             cancellDate
  106.  
  107.         ORDER BY
  108.             cancellDate DESC),
  109.            
  110.    
  111.     subusersCreated as
  112.     (SELECT
  113.         DATE(created) subuserCreatedDate,
  114.         COUNT(userID) subusersCreatedCount
  115.  
  116.     FROM
  117.         organization_members
  118.        
  119.     GROUP BY
  120.             subuserCreatedDate
  121.     ORDER BY
  122.         subuserCreatedDate DESC),
  123.        
  124.     usersFirstAddonPayment as (
  125.  
  126. /*First users payment for add on*/
  127. SELECT
  128.     userID,
  129.     MIN(DATE(paymentDateTime)) firstSubuserPaymentDate
  130. FROM
  131.     payments
  132.  
  133. WHERE
  134.  
  135.   paymentType = 3
  136.     AND productID = 2
  137.     AND paymentDateTime > '2022-12-11'
  138.  
  139. GROUP BY
  140.     userID
  141.  
  142. ORDER BY
  143.   firstSubuserPaymentDate DESC),
  144.  
  145. firstAddonPayment as (
  146.     /*Count of users with first payment for sub user by date*/
  147.     SELECT
  148.         firstSubuserPaymentDate,
  149.         count(DISTINCT userID) firstSubuserPaymentUsersCount_G8
  150.    
  151.     FROM
  152.         usersFirstAddonPayment
  153.    
  154.     GROUP BY
  155.         firstSubuserPaymentDate
  156.    
  157.     ORDER BY
  158.         firstSubuserPaymentDate DESC),
  159.  
  160. preparedData as (
  161.  
  162. SELECT
  163.     registerDateWeekYear,
  164.     SUM(newSigunUpsVerified_G2) as newSigunUpsVerified_G2WeeklySum,
  165.     SUM(firstSubscriptionUsersCount_G4) as firstSubscriptionUsersCount_G4WeeklySum,
  166.     SUM(firstSubscriptionRevenue)as firstSubscriptionRevenueWeeklySum,
  167.     SUM(firstSubscriptionMRR) as firstSubscriptionMRRWeeklySum,
  168.     SUM(upgradedSubscriptionUsersCount) as upgradedSubscriptionUsersCountWeeklySum,
  169.     SUM(upgradedSubscriptionRevenue) as upgradedSubscriptionRevenueWeeklySum,
  170.     SUM(upgradedSubscriptionMRR) as upgradedSubscriptionMRRWeeklySum,
  171.     SUM(renewedSubscriptionUsersCount) as renewedSubscriptionUsersCountWeeklySum,
  172.     SUM(renewedSubscriptionRevenue) as renewedSubscriptionRevenueWeeklySum,
  173.     SUM(renewedSubscriptionMRR) as renewedSubscriptionMRRWeeklySum,
  174.     SUM(canceledSubsCount) as canceledSubsCountWeeklySum,
  175.     SUM(subusersCreatedCount) as subusersCreatedCountWeeklySum,
  176.     SUM(firstSubuserPaymentUsersCount_G8) as firstSubuserPaymentUsersCount_G8WeeklySum,
  177.    
  178.     ROUND(AVG(newSigunUpsVerified_G2)) as newSigunUpsVerified_G2WeeklyAVG,
  179.     ROUND(AVG(firstSubscriptionUsersCount_G4)) as firstSubscriptionUsersCount_G4WeeklyAVG,
  180.     ROUND(AVG(firstSubscriptionRevenue)) as firstSubscriptionRevenueWeeklyAVG,
  181.     ROUND(AVG(firstSubscriptionMRR)) as firstSubscriptionMRRWeeklyAVG,
  182.     ROUND(AVG(upgradedSubscriptionUsersCount)) as upgradedSubscriptionUsersCountWeeklyAVG,
  183.     ROUND(AVG(upgradedSubscriptionRevenue)) as upgradedSubscriptionRevenueWeeklyAVG,
  184.     ROUND(AVG(upgradedSubscriptionMRR)) as upgradedSubscriptionMRRWeeklyAVG,
  185.     ROUND(AVG(renewedSubscriptionUsersCount)) as renewedSubscriptionUsersCountWeeklyAVG,
  186.     ROUND(AVG(renewedSubscriptionRevenue)) as renewedSubscriptionRevenueWeeklyAVG,
  187.     ROUND(AVG(renewedSubscriptionMRR)) as renewedSubscriptionMRRWeeklyAVG,
  188.     ROUND(AVG(canceledSubsCount)) as canceledSubsCountWeeklyAVG,
  189.     ROUND(AVG(subusersCreatedCount)) as subusersCreatedCountWeeklyAVG,
  190.     ROUND(AVG(firstSubuserPaymentUsersCount_G8)) as firstSubuserPaymentUsersCount_G8WeeklyAVG
  191.  
  192.    
  193. FROM
  194.     newSigunps
  195.  
  196. LEFT JOIN
  197.     newSubs
  198.  
  199. ON newSigunps.registerDate = newSubs.firstSubsPaymentDate
  200.  
  201. LEFT JOIN
  202.     upgradedSubs
  203.  
  204. ON newSigunps.registerDate = upgradedSubs.upgradedSubsPaymentDate
  205.  
  206. LEFT JOIN
  207.     renewedSubs
  208.  
  209. ON newSigunps.registerDate = renewedSubs.renewedSubsPaymentDate
  210.  
  211. LEFT JOIN
  212.     canceledSubs
  213.  
  214. ON
  215.     newSigunps.registerDate = canceledSubs.cancellDate
  216.    
  217. LEFT JOIN
  218.     subusersCreated
  219.    
  220. ON
  221.     newSigunps.registerDate = subusersCreated.subuserCreatedDate
  222.    
  223. LEFT JOIN
  224.     firstAddonPayment
  225.  
  226. ON
  227.     newSigunps.registerDate = firstAddonPayment.firstSubuserPaymentDate
  228.  
  229. GROUP BY
  230.     registerDateWeekYear
  231.  
  232. ORDER BY
  233.     registerDateWeekYear DESC)
  234.    
  235. SELECT
  236.     registerDateWeekYear,
  237.     newSigunUpsVerified_G2WeeklySum,
  238.     firstSubscriptionUsersCount_G4WeeklySum,
  239.     ROUND((firstSubscriptionUsersCount_G4WeeklySum / newSigunUpsVerified_G2WeeklySum),6) as crG2toG4WeeklySUM,
  240.     firstSubscriptionRevenueWeeklySum,
  241.     firstSubscriptionMRRWeeklySum,
  242.     upgradedSubscriptionUsersCountWeeklySum,
  243.     upgradedSubscriptionRevenueWeeklySum,
  244.     upgradedSubscriptionMRRWeeklySum,
  245.     renewedSubscriptionUsersCountWeeklySum,
  246.     renewedSubscriptionRevenueWeeklySum,
  247.     renewedSubscriptionMRRWeeklySum,
  248.     canceledSubsCountWeeklySum,
  249.     subusersCreatedCountWeeklySum,
  250.     firstSubuserPaymentUsersCount_G8WeeklySum,
  251.    
  252.     newSigunUpsVerified_G2WeeklyAVG,
  253.     firstSubscriptionUsersCount_G4WeeklyAVG,
  254.     ROUND((firstSubscriptionUsersCount_G4WeeklyAVG / newSigunUpsVerified_G2WeeklyAVG),6) as crG2toG4WeeklyAVG,
  255.     firstSubscriptionRevenueWeeklyAVG,
  256.     firstSubscriptionMRRWeeklyAVG,
  257.     upgradedSubscriptionUsersCountWeeklyAVG,
  258.     upgradedSubscriptionRevenueWeeklyAVG,
  259.     upgradedSubscriptionMRRWeeklyAVG,
  260.     renewedSubscriptionUsersCountWeeklyAVG,
  261.     renewedSubscriptionRevenueWeeklyAVG,
  262.     renewedSubscriptionMRRWeeklyAVG
  263.     canceledSubsCountWeeklyAVG,
  264.     subusersCreatedCountWeeklyAVG,
  265.     firstSubuserPaymentUsersCount_G8WeeklyAVG
  266.    
  267. FROM
  268.     preparedData
  269.  
Advertisement
Add Comment
Please, Sign In to add comment