Проанализируйте данные из таблицы invoice за 2012 и 2013 годы. В итоговую таблицу должны войти поля:
month— номер месяца;sum_total_2012— выручка за этот месяц в 2012 году;sum_total_2013— выручка за этот месяц в 2013 году;perc— процент, который отображает, насколько изменилась месячная выручка в 2013 году по сравнению с 2012 годом.
Округлите значение в поле perc до ближайшего целого числа. Отсортируйте таблицу по значению в поле month от меньшего к большему.
WITH
t_1 AS (
SELECT DISTINCT EXTRACT(MONTH FROM CAST(invoice_date AS date)) AS month,
SUM(total)
FROM invoice
WHERE EXTRACT(YEAR FROM CAST(invoice_date AS date)) = 2012
GROUP BY EXTRACT(MONTH FROM CAST(invoice_date AS date))),
t_2 AS (
SELECT DISTINCT EXTRACT(MONTH FROM CAST(invoice_date AS date)) AS month,
SUM(total)
FROM invoice
WHERE EXTRACT(YEAR FROM CAST(invoice_date AS date)) = 2013
GROUP BY EXTRACT(MONTH FROM CAST(invoice_date AS date)))
SELECT t_1.month AS month,
t_1.sum AS sum_total_2012,
t_2.sum AS sum_total_2013,
ROUND(((t_2.sum - t_1.sum)/t_1.sum) * 100) AS perc
FROM t_1
LEFT OUTER JOIN t_2 ON t_1.month = t_2.month
ORDER BY month;
Результат
| month | sum_total_2012 | sum_total_2013 | perc |
|---|---|---|---|
| 1 | 37.62 | 37.62 | 0 |
| 2 | 37.62 | 27.72 | -26 |
| 3 | 37.62 | 37.62 | 0 |
| 4 | 37.62 | 33.66 | -11 |
| 5 | 37.62 | 37.62 | 0 |
| 6 | 37.62 | 37.62 | 0 |
| 7 | 39.62 | 37.62 | -5 |
| 8 | 47.62 | 37.62 | -21 |
| 9 | 46.71 | 37.62 | -19 |
| 10 | 42.62 | 37.62 | -12 |
| 11 | 37.62 | 49.62 | 32 |
| 12 | 37.62 | 38.62 | 3 |
Вы уже знаете и умеете многое. Впереди ещё несколько уроков, а за ними — самостоятельный проект.