我正在努力解决一些复杂的问题。我并不确定如何在谷歌上查询以获得一些帮助...
我有一张像这样的表:
Date | period | meter | value
2017-01-01 | 1 | meter01 | 1.12
2017-01-01 | 2 | meter01 | 2.12
.
.
2017-01-01 | 1 | meter02 | 0.12
2017-01-01 | 2 | meter02 | 7.12
.
.
2017-01-02 | 1 | meter01 | 2.12
2017-01-02 | 2 | meter01 | 4.12
.
.
任何指定日期都有48个期间。任何特定日期也可能有数百米。
我希望返回一个看起来像这样的结果:
Date | Meter | Period 1 | Period 2 | Period 3 | Period 4
2017-01-01 | meter01 | 1.24 | 2.12
2017-01-01 | meter02 | 2.24 | 3.12
结果将给出每个仪表,日期和期间的总计,其中期间列是给定仪表,期间和日期的所有读数的总和。
答案 0 :(得分:1)
一种方法是条件聚合:
select date, meter,
sum(case when period = 1 then value end) as period_01,
sum(case when period = 2 then value end) as period_02,
sum(case when period = 3 then value end) as period_03,
sum(case when period = 4 then value end) as period_04
from t
group by date, meter
order by date, meter;