PostgreSQL Запрос квартальных продаж кросс-таблицы - PullRequest
0 голосов
/ 05 марта 2020

Я работаю с таблицей, в которой перечислены транзакции с данными, которые включают, но не ограничиваются, date_date и цена. Я хотел бы создать таблицу, которая суммирует итоги продаж за каждый квартал и год. Год должен быть указан внизу слева, а Q1 - Q4 - сверху. Итоговые значения этих двух параметров будут разбиты, как показано ниже.

Год | Q1 | Q2 | Q3 | Q4 | 2018 | ## | ## | ## | ## | 2019 | ## | ## | ## | ## | 2020 | ## | ## | ## | ## |

Я думаю, что единственная проблема, которая у меня действительно возникает, это как не только извлечь квартал из даты продажи, но и использовать его в качестве заголовка столбца. Ниже приведено то, что я собрал до сих пор.

SELECT *
FROM crosstab('SELECT EXTRACT(YEAR FROM sale_date), EXTRACT(QUARTER FROM sale_date), SUM(price)
FROM re_sales
WHERE price IS NOT NULL AND sale_date IS NOT NULL
GROUP BY 1,2')
**AS quarterly_sales(Year NUMERIC, Q1 NUMERIC, Q2 NUMERIC, Q3 NUMERIC, Q4 NUMERIC);**

Я считаю, что секция , выделенная жирным шрифтом , - это все, что нужно исправить, поскольку секция функции кросс-таблицы в одиночной кавычке возвращает таблица с колонкой с годами, вторая колонка с кварталами и третья колонка с итогами. Я просто хотел бы переставить его с указанием кварталов сверху.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...