我有一张这样的table:
id name value
--------------------
1 x 100
1 y 200
1 z 300
2 x 10
2 y abc
2 z 001
3 x 1
...
--------------------
我需要把它变成这样:
id x y z
---------------------
1 100 200 300
2 10 abc 001
3 1 ...
---------------------
名字是确定的。我可以做多个连接,但我正在寻找一个更优雅的解决方案。
2条答案
按热度按时间x6h2sr281#
使用在postgres中使用
filter
语法:zkure5ic2#
附加模块tablefunc提供
crosstab()
通常最快的函数:你的脑子里好像有数字和字符串的混合体
value
,所以我选择了text
作为输出。请参见:
postgresql交叉表查询