我有一个查询返回给我这个结果:
-----DATE--------------VALUE1---VALUE2
|2016-09-20 11:15:00| 5653856 | 37580
|2016-09-20 11:16:00| NULL NULL
|2016-09-20 11:18:00| NULL NULL
|2016-09-20 11:20:00| NULL NULL
|2016-09-20 11:30:00| 5653860 37580
|2016-09-20 11:32:00| NULL NULL
|2016-09-20 11:34:00| NULL NULL
在此表中,只有xx:00,xx:15,xx:30,xx:45中的记录具有值,其他记录为null。
如何在查询中创建条件,只获取00,15,30和45次记录而不显示其他记录?
这是查询:
SELECT t.date,
MAX(CASE WHEN t.id= '924' THEN t.value END) - MAX(CASE WHEN t.id= '925' THEN t.valueEND) as IMA_71,
MAX(CASE WHEN t.id= '930' THEN t.value END) as IMA_73
FROM records t
where office=10
and date between '2016-09-20 11:15:00' and '2016-10-21 11:15:00'
GROUP BY t.office,t.date order by t.date asc;
答案 0 :(得分:1)
您可以使用extract
来确定分钟,并对其进行过滤:
where extract('minute' from t.date) in (0, 15, 30, 45)