Advertisement
festinko

Untitled

Dec 2nd, 2022
634
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 2.31 KB | None | 0 0
  1. WITH
  2.     lastPayment as(
  3.       SELECT
  4.         p1.userID,
  5.         MAX(p1.paymentDateTime) paymentDateTime,
  6.         MAX(p1.paymentAmount) paymentAmount,
  7.         MAX(p1.paymentPeriod) paymentPeriod
  8.  
  9.       FROM
  10.         `uptimerobot-001.ur.payments` p1
  11.      
  12.       LEFT JOIN (
  13.         SELECT
  14.           userID,
  15.           MAX(paymentDatetime) lastPaymentDateTime
  16.         FROM
  17.           `uptimerobot-001.ur.payments`
  18.        
  19.         WHERE
  20.         paymentStatus = 1 AND
  21.         paymentType = 2
  22.  
  23.         GROUP BY
  24.           userID
  25.        ) lp
  26.  
  27.  
  28.  
  29.       ON p1.paymentDateTime = lp.lastPaymentDateTime
  30.  
  31.       WHERE
  32.       lastPaymentDateTime IS NOT NULL
  33.      
  34.      
  35.       GROUP BY
  36.         userID
  37.     ),
  38.  
  39.     lastMRR as(
  40.       SELECT
  41.         userID,
  42.         paymentDateTime,
  43.         ROUND(SAFE_DIVIDE(paymentAmount, paymentPeriod)) lastPaymentMRR
  44.       FROM
  45.         lastPayment
  46.     ),
  47.  
  48.     referredUsers as(
  49.         SELECT
  50.             userReferrerUserID,
  51.             u.userID,
  52.             p.paymentDateTime,
  53.             paymentAmount,
  54.             paymentPeriod,
  55.             lastPaymentMRR
  56.  
  57.        
  58.         FROM
  59.             `uptimerobot-001.ur.users` u
  60.         LEFT JOIN
  61.           `uptimerobot-001.ur.payments` p
  62.        
  63.         ON u.userID = p.userID
  64.        
  65.         LEFT JOIN
  66.           lastMRR
  67.         ON u.userID = lastMRR.userID
  68.  
  69.         WHERE
  70.             userReferrerUserID IS NOT NULL
  71.             AND userReferrerUserID <> 999999999
  72.        
  73.         ORDER BY
  74.             userReferrerUserID DESC,
  75.             u.userID DESC,
  76.             paymentDateTime DESC),
  77.  
  78. referredUsersRevenueMRR as (
  79.         SELECT
  80.           MAX(userReferrerUserID) userReferrerUserID,
  81.           userID,
  82.           SUM(paymentAmount) totalRevenue,
  83.           MAX(lastPaymentMRR) lastPaymentMRR
  84.  
  85.         FROM
  86.           referredUsers
  87.  
  88.         GROUP BY
  89.           userID
  90.  
  91.         ORDER BY
  92.           lastPaymentMRR DESC),
  93.  
  94. totalReferredRevenueMRR as (
  95.   SELECT
  96.     userReferrerUserID,
  97.     count(DISTINCT userID) referredUsers,
  98.     ROUND(SUM(totalRevenue)) sumTotalRevenue,
  99.     SUM(lastPaymentMRR) sumLastPaymentMRR
  100.  
  101.  
  102.   FROM
  103.     referredUsersRevenueMRR
  104.  
  105.   GROUP BY
  106.     userReferrerUserID
  107.  
  108.   ORDER BY
  109.     sumLastPaymentMRR DESC)
  110.  
  111.  
  112. SELECT
  113.   *
  114.  
  115. FROM
  116.   totalReferredRevenueMRR
  117.  
  118.  
  119.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement