小编Edo*_*ard的帖子

使用交叉表和计数的数据透视表

我必须显示这样的表格:

发表 没送到 没收到
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)

我不想手动输入所有标记值,因为它们很多。

ERROR:  invalid source data SQL …
Run Code Online (Sandbox Code Playgroud)

postgresql pivot-table dynamic-sql crosstab postgres-crosstab

2
推荐指数
1
解决办法
6937
查看次数