Postgresql交叉表未按预期工作

qlckcl4x  于 2023-06-29  发布在  PostgreSQL
关注(0)|答案(1)|浏览(150)

我有一个临时表,其中包含按ID和类型组织的事件计数。有6种可能的事件。以下是来自id 234的结果。

SELECT * FROM _tmp_grouped WHERE id = 234;

我想交叉表列,这样类型就变成了列标题。

SELECT * 
    FROM crosstab('SELECT * FROM _tmp_grouped WHERE id = 234') 
    AS (id INT, prompt_shown_last BIGINT, prompt_shown BIGINT, prompt_dismissed_last BIGINT, prompt_dismissed BIGINT, prompt_allowed_last BIGINT, prompt_allowed BIGINT);

然而,一旦我添加了额外的id,交叉表的结果就会变得很奇怪。

如果我根本不进行过滤,prompt_shown_last列将被填充,但所有其他列都为空。此外,每个prompt_id具有6行,用于所有6个可能的事件。
以前有人遇到过吗?

pod7payv

pod7payv1#

我可以通过命令tmp_grouped查询来解决这个问题-

SELECT * FROM _tmp_grouped ORDER BY 1, 2

相关问题