


Оконные функции SQL
Используя конструкцию WINDOW, рассчитайте суммарную стоимость и количество заказов с накоплением от месяца к месяцу.
Выгрузите поля:
идентификатор заказа;
месяц оформления заказа, приведённый к типу date;
сумма заказа;
количество заказов с накоплением;
суммарная стоимость заказов с накоплением.
Подсказка
Сохраните определение окна в конструкции WINDOW. Вспомните, в какой части запроса указывают конструкцию.
SELECT o.order_id,
DATE_TRUNC('month', o.paid_at)::DATE AS month,
total_amt,
COUNT(o.order_id) OVER w AS cumulative_orders,
SUM( o.total _amt) OVER w AS cumulative_cost
FROM
tools_shop.orders AS o
WINDOW w AS (
ORDER BY DATE_TRUNC('month', o.paid_at)::DATE
)
SELECT
order_id,
DATE_TRUNC('month', order_date) :: date AS month,
order_cost,
COUNT(order_id) OVER w AS cumulative_orders,
SUM(order_cost) OVER w AS cumulative_cost
FROM
orders
WINDOW w AS (
ORDER BY DATE_TRUNC('month', order_date)
)
SELECT
order_id,
DATE_TRUNC('month', order_date) as month,
order_cost,
COUNT(order_id) OVER w as cumulative_orders,
SUM(order_cost) OVER w as cumulative_cost
FROM
orders
WINDOW w AS (
PARTITION BY DATE_TRUNC('month', order_date)
ORDER BY order_date
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
)