Каталог
Веб-разработка с нуля: четыре курса по порядку.
HTML, затем CSS, JavaScript и SQL. Каждый курс говорит, что нужно знать до него и что вы будете уметь после.
Загружаем курсы…
Каталог
HTML, затем CSS, JavaScript и SQL. Каждый курс говорит, что нужно знать до него и что вы будете уметь после.
Загружаем курсы…
Урок 47 из 52 · 8 мин
Выручка нарастающим итогом и сравнение с предыдущим днём.
Не просто выручка по дням, а сколько всего с первого дня. И разница со вчера.
sum() OVER (ORDER BY day) — накопительная сумма. lag() — значение из предыдущей строки.
WITH daily AS (
SELECT o.created_at::date AS day, sum(oi.quantity * oi.unit_price) AS revenue
FROM orders o JOIN order_items oi ON oi.order_id = o.id
WHERE o.status = 'done'
GROUP BY day
)
SELECT day, revenue, sum(revenue) OVER (ORDER BY day) AS running
FROM daily
ORDER BY day
LIMIT 6;lag · leadlag(x) — значение x из предыдущей строки окна, lead(x) — из следующей. У первой строки lag — NULL.SELECT id, customer_id, created_at,
created_at - lag(created_at) OVER (PARTITION BY customer_id ORDER BY created_at) AS since_previous
FROM orders
WHERE customer_id = 1;ROWS BETWEENROWS BETWEEN 2 PRECEDING AND CURRENT ROW — окно из текущей и двух предыдущих строк.SELECT id, created_at::date AS day,
count(*) OVER (ORDER BY created_at ROWS BETWEEN 2 PRECEDING AND CURRENT ROW) AS last3
FROM orders
LIMIT 5;Накопительный итог — sum() OVER (ORDER BY …). Сравнить с прошлым — lag().
По выполненным заказам посчитай выручку по дням и выведи day, revenue и running — выручку нарастающим итогом, по возрастанию дня.
OVER — пока нетcategories — категории товаровid, nameproducts — товарыid, name, category_id, price, weight_g, is_available, added_oncustomers — покупателиid, name, email, city, phone, birthday, registered_onstaff — сотрудникиid, name, role, salary, hired_on, manager_idorders — заказыid, customer_id, staff_id, created_at, statusorder_items — позиции заказовorder_id, product_id, quantity, unit_pricereviews — отзывыid, customer_id, product_id, rating, comment, created_onВыберите один ответ.
Что вернёт lag(x) для первой строки окна?
Выберите один ответ.
Что даёт sum(revenue) OVER (ORDER BY day)?
Проверяем состояние обучения…