【问题标题】:Convert rows into Column in Postgress Error在 Postgres 错误中将行转换为列
【发布时间】:2021-11-15 19:08:11
【问题描述】:

您好,我已经创建了一个视图,但想要旋转它。

旋转前的输出:

预期输出:

我的完整查询:

SELECT *
FROM CROSSTAB(
  'SELECT DISTINCT GROUP_DEST::TEXT,DEST::TEXT,TIER::TEXT,RATE::TEXT  FROM  VBB_TIER   ORDER BY 1,2')
AS CT(ROW_NAME TEXT, TIER_1 TEXT, TIER_2 TEXT )

我收到此错误并且无法解决:

ERROR:  invalid source data SQL statement
DETAIL:  The provided SQL must return 3 columns: rowid, category, and values.
SQL state: 22023

【问题讨论】:

    标签: postgresql pivot crosstab


    【解决方案1】:

    使用过滤聚合通常比有些复杂的crosstab() 函数容易得多:

    select group_dest, 
           dest, 
           max(rate) filter (where tier in ('0-100', ('0-150')) as tier_1,
           max(rate) filter (where tier in ('101-200', '151-350') as tier_2
    from vbb_tier
    group by group_dest, dest;
    

    【讨论】:

    • 谢谢你,先生......这是有效的,但我也想显示 TIER,如 o/p 图像所示
    猜你喜欢
    • 2021-12-03
    • 1970-01-01
    • 1970-01-01
    • 2016-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-14
    • 1970-01-01
    相关资源
    最近更新 更多