sql server 怎么查询一个时间段内每个小时内的最新一条数据?

0
比如我的数据库每个分钟增加一条数据,我要取出一天内 每个小时内的最新一条数据。 求问该怎么写查询语句啊
已邀请:
0

- 取是能力,舍是境界 2016-05-28 回答

WITH tmp AS
(
SELECT 'A' T,'2016/05/28 08:31:00' DT
UNION
SELECT 'A' T,'2016/05/28 08:35:00' DT
UNION
SELECT 'B' T,'2016/05/28 07:23:00' DT
UNION
SELECT 'A' T,'2016/05/28 09:42:00' DT
UNION
SELECT 'B' T,'2016/05/28 21:31:00' DT
)
,tmp1 AS
(
SELECT *,ROW_NUMBER() OVER(PARTITION BY T,CONVERT(VARCHAR(13),DT,21) ORDER BY dt DESC) rn
FROM tmp
)
SELECT * FROM tmp1 WHERE rn = 1 ORDER BY t,DT
思路就是利用开窗函数,以小时为分组,分组内以时间倒序取第一条。

要回复问题请先登录注册