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