我有一个临时表,其中包含按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);

但是,一旦我添加了额外的I,交叉表结果就会变得很奇怪。

如果我根本不进行过滤,则填充prompt_shown_last列,但所有其他列都为null。此外,对于所有6个可能的事件,每个prompt_id都有6行。
以前有没有人遇到过这种情况?
发布于 2018-01-31 23:32:31
我可以通过对tmp_grouped查询进行排序来解决这个问题-
SELECT * FROM _tmp_grouped ORDER BY 1, 2https://stackoverflow.com/questions/48545250
复制相似问题