我有一个看起来像这样的 View
value1count value2count value3count
----------------------------------------
25 35 55
我需要将列标题转置为行,所以我需要它看起来像
Values Count
-----------------------------
value1count 25
value2count 35
value3count 55
我可以通过选择单独的列名称作为第一列和数据作为第二列,然后对所有列进行相同的合并来实现这一点。
有更好的方法吗? 我使用的是 PosgreSQL 8.1,因此没有可以使用的数据透视运算符。
提前感谢您的回复。
最佳答案
Crosstab 只做你需要的相反的事情,但这应该对你有帮助:
首先创建 8.4 中包含的 unnest()
函数,参见 here获取说明。
然后你可以这样做(基于 this 帖子):
SELECT
unnest(array['value1Count', 'value2Count', 'value3Count']) AS "Values",
unnest(array[value1Count, value2Count, value3Count]) AS "Count"
FROM view_name
ORDER BY "Values"
我可以验证这在 8.4 中是否有效,但因为我没有 8.1,所以我不能保证它会同样有效。
关于sql - 将列标题转置为 postgresql 中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10624864/