我想在不使用任何PIVOT
函数的情况下透视一个表,而只使用纯SQL(例如PostgreSQL语法)。
以这个数据集为例:
Order | Element | Value |
---------------------------
1 | Item | Bread |
1 | Quantity | 3 |
1 | TotalCost | 3,30 |
2 | Item | Pizza |
2 | Quantity | 2 |
2 | TotalCost | 10 |
3 | Item | Pasta |
3 | Quantity | 5 |
3 | TotalCost | 2,50 |
字符串
我希望以Order
列为中心,并有一些类似的东西:
Order | Item | Quantity | TotalCost |
-------------------------------------
1 | Bread | 3 | 3,30 |
2 | Pizza | 2 | 10 |
3 | Pasta | 5 | 2,50 |
型
我该如何实现这一点呢,再说一次,不使用任何pivot函数?
2条答案
按热度按时间ep6jt1vc1#
溶液A
使用
CASE WHEN
语句:字符串
溶液B
使用self
LEFT JOIN
s:型
后者可能没有那么高效,但也有可能有用的用例。
tzcvj98z2#
在Postgres中,你可以使用
FILTER
:字符串
请注意,
ORDER
是一个SQL关键字,所以它是一个糟糕的列名选择。