如何旋转 table - Postgresql
How to pivot a table - Postgresql
我有table
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
我研究了一下好像cross tab或者case when的方法很多但是没找到解决方法,有没有最简单的?
您可以使用 values()
和横向连接来反透视您的数据集:
select t.team, x.*
from mytable t
cross join lateral (values
('profit', profit),
('spend', spend),
('net_profit', net_profit)
) as x(category, total)
我有table
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
我研究了一下好像cross tab或者case when的方法很多但是没找到解决方法,有没有最简单的?
您可以使用 values()
和横向连接来反透视您的数据集:
select t.team, x.*
from mytable t
cross join lateral (values
('profit', profit),
('spend', spend),
('net_profit', net_profit)
) as x(category, total)