【问题标题】:Unique Rows to Columns in PostgresqlPostgresql 中的唯一行到列
【发布时间】:2012-06-21 02:40:35
【问题描述】:

我有如下排序的数据表:

Item    |   Sample  |   Value   |
---------------------------------
Part A  |   Top     |   1.0     |
Part A  |   Bottom  |   4.0     |
Part A  |   Left    |   3.0     |
Part A  |   Right   |   2.0     |
Part A  |   Center  |   5.0     |
Part B  |   Top     |   6.0     |
Part B  |   Bottom  |   1.0     |
Part B  |   Left    |   1.0     |
Part B  |   Right   |   5.0     |
Part B  |   Center  |   9.0     |
Part C  |   Top     |   7.0     |
Part C  |   Bottom  |   5.0     |
Part C  |   Left    |   1.0     |
Part C  |   Right   |   2.0     |
Part C  |   Center  |   1.0     |

我正在尝试对其进行进一步的统计分析。对于这些计算,理想的数据输出如下:

Item    |   Top     |   Bottom  |   Left    |   Right   |   Center  |
---------------------------------------------------------------------
Part A  |   1.0     |   4.0     |   3.0     |   2.0     |   5.0     |
Part B  |   3.0     |   1.0     |   1.0     |   5.0     |   9.0     |
Part C  |   7.0     |   5.0     |   1.0     |   2.0     |   1.0     |

我相信在 MSSQL 中您可以使用 PIVOT 或 UNPIVOT 函数来完成此操作,但我不确定在 Postgresql 中。我发现的所有类似解决方案似乎都含糊不清。任何帮助或指导将不胜感激!

【问题讨论】:

    标签: postgresql pivot unpivot


    【解决方案1】:

    为此使用tablefunc 扩展的crosstab() 函数。

    我最近发布了多个带有链接和详细说明的示例。 Try a search.

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-28
    • 1970-01-01
    • 1970-01-01
    • 2018-08-13
    • 2015-07-21
    相关资源
    最近更新 更多