postgresql - 数据透视表/交叉表 : I wan to return dynamic columns

标签 postgresql pivot pivot-table postgres-crosstab

我只想从交叉表中返回动态列,基于查询结果的列名称。 header 是从不同的表(如类型)中查找的。

任何帮助表示赞赏。到目前为止,我可以获得硬编码列。

例如

结果1:

<表类=“s-表”> <标题> 标题 B header C header D header <正文> 第一 111 12 1 第二个 33 34 0

结果2:

<表类=“s-表”> <标题> 标题 X header Y header D header <正文> 第一 11 123 11 第二个 313 343 12
SELECT * FROM crosstab(
$$
    SELECT property, name, count(prm_id)
    FROM vw_ex_insp_sum
    WHERE prm_id = 1
    AND date_t BETWEEN '2021/01/01' AND '2021/1/31'
    GROUP BY property, name
    HAVING count(prm_id) >0
$$,
$$
    SELECT name FROM lookup WHERE l_type=12
    ORDER BY vit 
$$
) AS final_result (
    Name2 varchar,
    "Annual (365)" bigint, "Follow-Up (30)" bigint, "3" bigint, "4" bigint, "5" bigint ,
    name_0 bigint, name_1 bigint, "8" bigint, "Indicator (Post-Event)" bigint, "10" bigint ,
    "11" bigint, "12" bigint, "13" bigint, "14" bigint, "15" bigint ,
    "16" bigint
);


最佳答案

下面是实现完整动态数据透视表解决方案而不是使用交叉表的两个示例:

https://stackoverflow.com/a/70466824/8060017

https://stackoverflow.com/a/70695023/8060017

关于postgresql - 数据透视表/交叉表 : I wan to return dynamic columns,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70872306/

相关文章:

sql - PostgreSQL 说 "return and sql tuple descriptions are incompatible"

python Pandas : pivot rows to columns based on duplicate index columns

python - 反转交叉表或频率表

sql - 在更新语句中加密 postgres 列

sql - 如何在 PostgreSQL 中将行转换为列?

mysql - MariaDB/MySQL 电影数据显示为每日时间表 - 4 个时间段

python - 从已在 pandas 中重新索引的数据透视表中选择一列

python - Pandas 的数据透视表或分组依据?

postgresql - 复合唯一键的 Gorm 标签

postgresql - Postgres pg_background_launch 权限被拒绝