【问题标题】:How to pivot a table - Postgresql如何旋转表 - Postgresql
【发布时间】:2020-09-14 09:48:58
【问题描述】:

我有桌子

Team profit spend net_profit
A     3     2     1
B     6     5     1

如何得到这样的结果

Team Category    Total
A    profit      3
A    spend       2
A    net_profit  1
B
B
B

我进行了研究,似乎有很多方法,例如交叉表或案例,但我还没有找到解决方案,有没有最简单的?

【问题讨论】:

    标签: sql postgresql unpivot


    【解决方案1】:

    您可以使用values() 和横向连接来反透视您的数据集:

    select t.team, x.* 
    from mytable t
    cross join lateral (values 
        ('profit',     profit), 
        ('spend',      spend), 
        ('net_profit', net_profit)
    ) as x(category, total)
    

    【讨论】:

    • 您好,您有横向连接类型的示例和参考资料吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-18
    • 1970-01-01
    • 2013-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多