sql - 将列标题转置为 postgresql 中的行

标签 sql postgresql

我有一个看起来像这样的 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/

相关文章:

mysql - 加载XML更新表--MySQL

sql - 计算 SQL Server 查询中的唯一行

java - 如何使用 Hibernate 保存价格信息

postgresql - PL/pgSQL 无限循环

sql - Rails 中 WHERE 子句中的 ALL 运算符

sql - 范围和分配单元之间有什么区别/关系?

sql - 优化 Postgres 删除孤立记录

node.js - 在关联模型为空的地方 Sequelize

windows - 不允许具有管理权限的用户执行 postgresql

MySQL 中的 PHP 字符串变量 Like 查询