【问题标题】:Postgresql Crosstab Not Working As ExpectedPostgresql 交叉表未按预期工作
【发布时间】:2018-01-31 15:02:54
【问题描述】:

我有一个临时表,其中包含按 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 个可能的事件。

有人遇到过这种情况吗?

【问题讨论】:

    标签: postgresql pivot pivot-table crosstab


    【解决方案1】:

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

    SELECT * FROM _tmp_grouped ORDER BY 1, 2
    

    【讨论】:

      猜你喜欢
      • 2023-03-14
      • 2020-09-10
      • 1970-01-01
      • 2012-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-25
      • 2020-08-21
      相关资源
      最近更新 更多