Пользуясь таблицей purchase_order_header, посчитайте, сколько денег тратили клиенты на заказы каждый год, а также разницу в тратах между следующим и текущим годами. Разница должна показывать, на сколько траты следующего года отличаются от текущего. В случае, если данных по следующему году нет, используйте NULL. Выгрузите поля:

  • год оформления заказа (поле order_date), приведённый к типу date;
  • траты за текущий год (используя поле subtotal);
  • разница в тратах между следующим и текущим годами.
SELECT DATE_TRUNC('year', order_date)::date AS year,
       SUM(subtotal) AS year_expenditure,
       LEAD(SUM(subtotal), 1, NULL) OVER (ORDER BY DATE_TRUNC('year', order_date)::date) - SUM(subtotal) AS year_diff
FROM adventure.purchase_order_header
GROUP BY year;

Результат

year year_expenditure year_diff
2011-01-01 403136 3.52376e+06
2012-01-01 3.92689e+06 1.61379e+07
2013-01-01 2.00648e+07 1.93324e+07
2014-01-01 3.93972e+07  

Задание выполнено верно