1

我有按如下排序的数据表:

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 中。我发现的所有类似解决方案似乎都含糊不清。任何帮助或指导将不胜感激!

4

1 回答 1

0

为此使用tablefunc扩展的crosstab()功能。

我最近发布了多个带有链接和详细说明的示例。尝试搜索

于 2012-06-20T18:40:35.810 回答