我有一个生产读数表,需要获取一个结果集,其中包含每个小时的 min(timestamp) 行。列布局很简单:ID,TIMESTAMP,SOURCE_ID,SOURCE_VALUE
数据样本如下所示:
123,'2013-03-01 06:05:24',PMPROD,12345678.99
124,'2013-03-01 06:15:17',PMPROD,88888888.99
125,'2013-03-01 06:25:24' ,PMPROD,33333333.33
126,'2013-03-01 06:38:14',PMPROD,44444444.44
127,'2013-03-01 07:12:04',PMPROD,55555555.55
128,'2013-03-01 10: 38:14',PMPROD,44444444.44
129,'2013-03-01 10:56:14',PMPROD,22222222.22
130,'2013-03-01 15:28:02',PMPROD,66666666.66
记录全天添加到此表中,并且 source_value 已计算,因此不需要总和。
我不知道如何为current_date的每个小时获取 min(timestamp) 的一行。
select *
from source_readings
use index(ID_And_Time)
where source_id = 'PMPROD'
and date(timestamp)=CURRENT_DATE
and timestamp =
( select min(timestamp)
from source_readings use index(ID_And_Time)
where source_id = 'PMPROD'
)
当然,上面的代码给了我一个记录。我需要一条记录 current_date 的 min(hour(timestamp))。
我的结果集应该包含 ID 的行:123,127,128,130。我已经玩了几个小时了。谁能成为我的英雄?:)