Skip to content

2474. Customers With Strictly Increasing Purchases 👍

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
WITH
  YearlyOrders AS (
    SELECT
      customer_id,
      YEAR(order_date) AS year,
      SUM(price) AS price
    FROM Orders
    GROUP BY 1, 2
  )
SELECT CurrYear.customer_id
FROM YearlyOrders AS CurrYear
LEFT JOIN YearlyOrders AS NextYear
  ON (
    CurrYear.customer_id = NextYear.customer_id
    AND CurrYear.year + 1 = NextYear.year
    AND CurrYear.price < NextYear.price)
GROUP BY 1
HAVING COUNT(*) - COUNT(NextYear.customer_id) = 1;