涉及列不确定的行转列
Postgresql 数据库的查询结果返回 6 列,第 1 列是分组列,第 2 列是组内的 Value 列,第 3-6 列是组内的 Key 列,一条记录只有一个 Key 列有值,其他 Key 列为空,每条记录有值的 Key 的位置不确定。
Food |
Value |
Characteristics |
Color |
Location |
Date |
Fruit |
10 |
total count |
|||
Fruit |
3 |
apple |
|||
Fruit |
1 |
orange |
|||
Fruit |
4 |
banana |
|||
Fruit |
2 |
cherry |
|||
Fruit |
5 |
red |
|||
Fruit |
4 |
yellow |
|||
Fruit |
1 |
blue |
现在要保持分组列不变,将组内明细由行转列,非空的 Key 列的值转为新列名,Vale 列的值转为新列值,。
Food |
total count |
apple |
orange |
banana |
cherry |
red |
yellow |
blue |
Fruit |
10 |
3 |
1 |
4 |
2 |
5 |
4 |
1 |
编写SPL代码
A |
|
1 |
=postgresql.query("select * from tb where Food=?”,”Fruit”) |
2 |
=A1.pivot(Food;[#3,#4,#5,#6].ifn(),Value) |
A1:通过JDBC查询数据库。
A2:用pivot函数将这组记录由行转列。第1个参数是分组列,第2个参数是Key的列名,ifn函数取集合中第1个非空的成员。第3个参数是Value列。
英文版 https://c.scudata.com/article/1733272495462