繁体   English   中英

Postgres复杂的SQL查询

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM