Используя таблицу purchase_order_header, для каждого квартала 2012 года рассчитайте, на сколько процентов изменились траты клиентов на заказы в текущем квартале по сравнению с предыдущим.

Используя таблицу purchase_order_header, выведите три поля:

  • Номер квартала (1, 2, 3, 4) 2012 года.
  • Общая сумма трат за текущий квартал.
  • Вещественное число (положительное или отрицательное), которое обозначает, на сколько процентов изменилась сумма трат в текущем квартале по сравнению с предыдущим. Для расчётов используйте поле subtotal.

Значения двух последних полей округлите до двух знаков после запятой.

SELECT EXTRACT(QUARTER FROM order_date) AS quarter,
        ROUND(SUM(subtotal), 2) AS total,
        ROUND(((ROUND(SUM(subtotal), 2)::numeric / LAG(ROUND(SUM(subtotal), 2), 1, NULL) OVER (ORDER BY EXTRACT(QUARTER FROM order_date)))-1)*100, 2) AS percentage_change
FROM adventure.purchase_order_header
WHERE EXTRACT(YEAR FROM order_date) = '2012'
GROUP BY EXTRACT(QUARTER FROM order_date)
ORDER BY quarter;

Результат

quarter total percentage_change
1 1.67595e+06  
2 1.06064e+06 -36.71
3 801428 -24.44
4 388869 -51.48

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