[英]Postgres complicated sql query
我正在尝试解决一个复杂的查询。 而且我不太确定如何查询google以获得帮助...
我有一张桌子,像这样:
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
结果将为我提供每个仪表,日期和周期的总计,其中周期列是给定仪表,周期和日期的所有读数的总和。
一种方法是条件聚合:
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;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.