Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+4

Оконные функции 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)
)

Аватар пользователя
Оракул
1234567891011121314
 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 
)