SELECT * FROM
(SELECT T.*,DENSE_RANK() OVER(PARTITION BY substr(to_char(rec_date,'YYYY-MM-dd hh:mi:ss'),0,16) ORDER BY rec_date DESC) RN FROM GIS_TEST_TYGJ_CELLDATA T where rec_date between to_date('2010-7-26 12:12:12','YYYY-MM-DD hh24:mi:ss') and to_date('2010-7-26 20:12:12','YYYY-MM-DD hh24:mi:ss')) WHERE RN <=1
用来查询指定时间段每分钟内最后一秒的记录!就是分组再排序然后再取第一位!
本文介绍了一种使用SQL进行复杂查询的方法,通过结合使用DENSE_RANK及PARTITION BY子句来实现对特定时间范围内每分钟内最后一秒的数据记录进行查询。此方法先按条件筛选数据,然后对每分钟的时间段进行分组,并从中选取每组的最后一项记录。

1290

被折叠的 条评论
为什么被折叠?



