SQL 使用重复项和相同的前两列进行数据透视
SQL Pivot with duplicates and same two first columns
你好,第一次使用 sql 枢轴。我有一个来自 sql 查询的 table,如下所示,从 sql 查询返回。
Serial | SerialV2 | MeterType | MeterAmount
A1 | A11 | gas | 12
A1 | A11 | odometer | 1252
A2 | A22 | gas | 10
A2 | A22 | odometer | 105
A1 | A12 | gas | 1
A1 | A12 | odometer | 17542
我希望是这样的
Serial | SerialV2 | gas | odometer
A1 | A11 | 12 | 1252
A1 | A12 | 1 | 17542
A2 | A22 | 10 | 105
到目前为止我写的是
select serial, serialV2, [gas], [odometer]
from (
//sql query here
) query
PIVOT
(
sum(meterAmount)
FOR [meterType] in ([gas], [odometer])
) as p
order by serial
序列号相同但V2序列号不同的记录会不会有问题?
此外,如果出现另一个重复记录会发生什么情况,即 serial 和 serialV2 相同?
谢谢!
这是使用 conditional aggregation
的替代方法:
select serial, serialV2,
sum(case when metertype = 'gas' then meteramount end) as gas,
sum(case when metertype = 'odometer' then meteramount end) as odometer
from (
//sql query here
) query
group by serial, serialV2
你好,第一次使用 sql 枢轴。我有一个来自 sql 查询的 table,如下所示,从 sql 查询返回。
Serial | SerialV2 | MeterType | MeterAmount
A1 | A11 | gas | 12
A1 | A11 | odometer | 1252
A2 | A22 | gas | 10
A2 | A22 | odometer | 105
A1 | A12 | gas | 1
A1 | A12 | odometer | 17542
我希望是这样的
Serial | SerialV2 | gas | odometer
A1 | A11 | 12 | 1252
A1 | A12 | 1 | 17542
A2 | A22 | 10 | 105
到目前为止我写的是
select serial, serialV2, [gas], [odometer]
from (
//sql query here
) query
PIVOT
(
sum(meterAmount)
FOR [meterType] in ([gas], [odometer])
) as p
order by serial
序列号相同但V2序列号不同的记录会不会有问题?
此外,如果出现另一个重复记录会发生什么情况,即 serial 和 serialV2 相同?
谢谢!
这是使用 conditional aggregation
的替代方法:
select serial, serialV2,
sum(case when metertype = 'gas' then meteramount end) as gas,
sum(case when metertype = 'odometer' then meteramount end) as odometer
from (
//sql query here
) query
group by serial, serialV2