DB2 SQL 交叉表
DB2 SQL CROSSTAB
我想输出一个 table,转换为一个带有 Select 语句的交叉表。我如何使用 DB2 SQL 做到这一点?
ROW | Columns | VALUES _________________________________
_____________________________ --> Column1 | Column2 | Column3
1 | 1 | 12 _________________________________
1 | 2 | 25 Row 1| 12 | 25 | 11
1 | 3 | 11 Row 2| 30 | 5 | 15
2 | 1 | 30
2 | 2 | 5
2 | 3 | 15
如果您知道这些值(而且您似乎知道),那么条件聚合是一种简单的实现方法:
select row,
max(case when column = 1 then value end) as column1,
max(case when column = 2 then value end) as column2,
max(case when column = 3 then value end) as column2
from t
group by row;
我想输出一个 table,转换为一个带有 Select 语句的交叉表。我如何使用 DB2 SQL 做到这一点?
ROW | Columns | VALUES _________________________________
_____________________________ --> Column1 | Column2 | Column3
1 | 1 | 12 _________________________________
1 | 2 | 25 Row 1| 12 | 25 | 11
1 | 3 | 11 Row 2| 30 | 5 | 15
2 | 1 | 30
2 | 2 | 5
2 | 3 | 15
如果您知道这些值(而且您似乎知道),那么条件聚合是一种简单的实现方法:
select row,
max(case when column = 1 then value end) as column1,
max(case when column = 2 then value end) as column2,
max(case when column = 3 then value end) as column2
from t
group by row;