Используя конструкцию WINDOW, рассчитайте суммарную стоимость и количество заказов с накоплением от месяца к месяцу.

Выгрузите поля:

  • идентификатор заказа;
  • месяц оформления заказа, приведённый к типу date;
  • сумма заказа;
  • количество заказов с накоплением;
  • суммарная стоимость заказов с накоплением.
SELECT  order_id, 
        CAST(DATE_TRUNC('month', created_at) AS date) AS date_month, 
        total_amt,
        COUNT(order_id) OVER (ORDER BY CAST(DATE_TRUNC('month', created_at) AS date)) AS order_count,
        SUM(total_amt) OVER (ORDER BY CAST(DATE_TRUNC('month', created_at) AS date))
FROM tools_shop.orders
ORDER BY date_month

Результат

order_id date_month total_amt order_count sum
280567 2016-03-01 387.5 3 500.4
278543 2016-03-01 64.5 3 500.4
324983 2016-03-01 48.4 3 500.4
62705 2016-04-01 209 11 1069.37
349554 2016-04-01 13.32 11 1069.37

В отличие от временных таблиц, конструкцию WINDOW указывают внутри основного запроса — после оператора WHERE и до оператора ORDER BY.