我必须显示这样的表格:
| 年 | 月 | 发表 | 没送到 | 没收到 |
|---|---|---|---|---|
| 2021年 | 扬 | 10 | 86 | 75 |
| 2021年 | 二月 | 13 | 36 | 96 |
| 2021年 | 行进 | 49 | 7 | 61 |
| 2021年 | 四月 | 3 | 21 | 72 |
使用此查询生成的原始数据:
SELECT
year,
TO_CHAR( creation_date, 'Month') AS month,
marking,
COUNT(*) AS count
FROM invoices
GROUP BY 1,2,3
Run Code Online (Sandbox Code Playgroud)
我尝试过使用crosstab()但出现错误:
SELECT * FROM crosstab('
SELECT
year,
TO_CHAR( creation_date, ''Month'') AS month,
marking,
COUNT(*) AS count
FROM invoices
GROUP BY 1,2,3
') AS ct(year text, month text, marking text)
Run Code Online (Sandbox Code Playgroud)
我不想手动输入所有标记值,因为它们很多。
Run Code Online (Sandbox Code Playgroud)ERROR: invalid source data SQL …
postgresql pivot-table dynamic-sql crosstab postgres-crosstab