SQL行到列枢轴?

时间:2018-08-06 09:49:01

标签: sql sql-server

我目前有一个结构如下的数据库:

Time | Label | Reading | Units
13:50 | A1 | 20.45 | V
13:50 | A1 | 20.33 | W
13:50 | A2 | 8.55 | V
13:50 | A2 | 8.67 | W

我想做的是将Units列分为V列和W列,并按Label分组,但我无法使其正常工作。我必须使用数据透视功能吗?

我希望表格看起来像什么

Time | Label | V | W
13:50 | A1 |  20.45 | 20.33
13:50 | A2 | 8.55 | 8.67

1 个答案:

答案 0 :(得分:1)

您需要条件聚合:

select time, label,
       max(case when Units = 'V' then reading end) as V,
       max(case when Units = 'W' then reading end) as W
from table t
group by time, label;