Advertisement
Step8rother

Временные таблицы, задача 3

Jun 29th, 2023
3,165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 1.60 KB | Source Code | 0 0
  1. /*Проанализируйте данные из таблицы invoice за 2012 и 2013 годы. В итоговую таблицу должны войти поля:
  2. month — номер месяца;
  3. sum_total_2012 — выручка за этот месяц в 2012 году;
  4. sum_total_2013 — выручка за этот месяц в 2013 году;
  5. perc — процент, который отображает, насколько изменилась месячная выручка в 2013 году по сравнению с 2012 годом.
  6. Округлите значение в поле perc до ближайшего целого числа. Отсортируйте таблицу по значению в поле month от меньшего к большему.
  7. */
  8.  
  9. WITH year_2012 AS
  10.   (SELECT EXTRACT(MONTH FROM CAST(invoice_date AS DATE)) AS MONTH,
  11.           SUM(total)
  12.    FROM invoice
  13.    WHERE EXTRACT(YEAR FROM CAST(invoice_date AS DATE)) = 2012
  14.    GROUP BY MONTH),
  15.      year_2013 AS
  16.   (SELECT EXTRACT(MONTH FROM CAST(invoice_date AS DATE)) AS MONTH,
  17.           SUM(total)
  18.    FROM invoice
  19.    WHERE EXTRACT(YEAR FROM CAST(invoice_date AS DATE)) = 2013
  20.    GROUP BY MONTH)
  21. SELECT year_2012.MONTH AS MONTH,
  22.        year_2012.SUM AS sum_total_2012,
  23.        year_2013.SUM AS sum_total_2013,
  24.        --ROUND(100 * (year_2013.sum / year_2012.sum), 0) AS percent
  25.        ROUND((year_2013.SUM - year_2012.SUM) / year_2012.SUM * 100) AS perc
  26. FROM year_2012
  27. --INNER JOIN year_2013 ON year_2012.month = year_2013.month
  28. LEFT OUTER JOIN year_2013 ON year_2012.MONTH = year_2013.MONTH
  29. ORDER BY year_2012.MONTH;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement