【发布时间】:2014-01-17 21:21:10
【问题描述】:
我正在使用此查询在一小时内获取第一个数据条目:
select *
from
(
select time_stamp, value
from tbl
order by time_stamp desc
)
group by strftime('%m%d%H',time_stamp)
order by time_stamp;
它给了我正确的结果,但是由于大量数据点和有限的硬件资源而速度很慢。 当不在 GROUP 之前排序时,它会快得多,但是我会从小时的随机部分获取值。 有什么建议吗?
返回值示例:
select ts, t1 from temperatura group by strftime('%m%d%H',ts) order by ts limit 5;
2013-12-22 09:59:01|22062
2013-12-22 10:59:02|21937
2013-12-22 11:59:02|21937
2013-12-22 12:57:02|22000
2013-12-22 13:59:02|21625
select * from(select ts, t1 from temperatura order by ts desc) group by strftime('%m%d%H',ts) order by ts limit 5;
2013-12-22 09:58:48|22000
2013-12-22 10:00:02|22000
2013-12-22 11:00:02|21937
2013-12-22 12:00:02|21937
2013-12-22 13:19:41|21812
如您所见,我得到了不同的答案。第二个是我想要的。
【问题讨论】: