数据如下:
Measure Value Date
--------------------------------
1 2.3 2016-01-01
1 2.5 2016-01-02
1 2.6 2016-01-03
2 1.2 2016-01-01
2 1.3 2016-01-02
2 1.4 2016-01-03
我想根据Measures
将Value列分成2列最终输出应该看起来像
Date Value_Measure_1 Value_Measure_2
---------------------------------------------------------------------
2016-01-01 2.3 1.2
2016-01-02 2.5 1.3
2016-01-03 2.6 1.4
我能找到的唯一方法就是自我加入。
还有其他方法可以做得更好吗?
谢谢!
答案 0 :(得分:2)
如果每个度量每个日期只有1行,则可以这样做:
select
Date,
max(case when Measure = 1 then value end) as Value_Measure_1
max(case when Measure = 2 then value end) as Value_Measure_2
from
yourtable
group by
Date
答案 1 :(得分:1)
使用条件聚合:
SELECT t.date,
MAX(CASE WHEN t.Measure = 1 THEN t.Value END) as val_meas_1,
MAX(CASE WHEN t.Measure = 2 THEN t.Value END) as val_meas_2
FROM YourTable t
GROUP BY t.date
答案 2 :(得分:0)
我建议您将枢轴功能与某些T-SQL一起使用。