PostgreSQL交叉表季度销售查询

时间:2020-03-05 18:40:13

标签: postgresql extract crosstab

我正在使用一个表,该表列出了包含但不限于sale_date和price的数据的交易。我想创建一个表,总结每个季度和每年的销售总额。年份应在左侧下方列出,而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);**

我相信 bounded 部分是需要固定的,因为单引号内的交叉表函数部分将返回一个表,该表的年份包含一列,第二列的包含四分之一。 ,以及总计的第三列。我只想重新排列一下顶部的四分之一。

0 个答案:

没有答案