【发布时间】:2014-03-17 16:42:45
【问题描述】:
我有一个类似于非聚合数据透视表的问题,但我希望我的表格包含多个结果。作为一个例子,我是这样开始的:
ID | OrganizationID | Group | Vendor | Product
1 3 G1 V1 P1
2 3 G1 V2 P2
3 3 G2 V3 P3
4 4 G1 V1 P1
5 4 G1 V1 P2
并且需要我的数据以这样的方式结束:
ID | OrganizationID | G1_V1 | G1_V2 | G2_V3
1 3 P1 P2 P3
2 4 P1 NULL NULL
3 4 P2 NULL NULL
我正在处理的数据大约有 700 万行,因此使用动态 sql 进行自联接已被证明非常缓慢。有什么容易我想念的吗?提前致谢!
【问题讨论】:
-
您是否需要多个固定列,或者您正在寻找动态解决方案?后者可能不适用于某些 RDBMS。
-
我目前正在考虑将 SQL Server 2012 和 Postgres 9.3 作为潜在的解决方案。我有固定数量的列,虽然它类似于 673,所以我使用动态 sql 将列表放在一起。
标签: sql sql-server-2012 pivot crosstab postgresql-9.3