如何旋转表 - Postgresql

Posted

技术标签:

【中文标题】如何旋转表 - Postgresql【英文标题】:How to pivot a table - 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

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

【问题讨论】:

【参考方案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)

【讨论】:

您好,您有横向连接类型的示例和参考资料吗?

以上是关于如何旋转表 - Postgresql的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SQL Server 2005 中对 sql 表进行尴尬的旋转?

如何在 postgresql 中旋转 2 行的简单表?

Apple Watch SwiftUI 地图事件?如何读取数字表冠旋转的当前区域跨度?

如何通过将行旋转到 csv 数据来折叠工作表

如何将行旋转到列(自定义旋转)

如何旋转数据框?