我有一个SQL查询:如何选择日期范围第一和最后一个数据
WITH Cte AS
(
SELECT DateTime,
rn1 = ROW_NUMBER() OVER(ORDER BY DateTime ASC),
rn2 = ROW_NUMBER() OVER(ORDER BY DateTime DESC)
FROM
Test
WHERE
Username = 'ME'
AND DateTime > '2016-01-05'
AND DateTime < '2016-01-06'
)
SELECT * FROM Cte WHERE rn1 = 1 UNION ALL
SELECT * FROM Cte WHERE rn2 = 1
与此查询我成功地获得在第一个和最后一个数据2016
1月5日,但我怎样才能得到第一个和最后一个数据,例如,从1月5日到1月8日?
也就是说,我想从1月5日开始获取第一个和最后一个数据,然后是1月6日的第一个数据和最后一个数据,然后是1月7日的第一个数据和最后一个数据,最后是第一个数据和最后一个数据数据来自1月8日。
,你可以看到,顺序是那种乱
的,我希望它看起来像这样
尝试增加'PARTITION BY CAST(日期时间AS DATE)''的OVER'子句。 –
thnks,这就是我所喜欢的,也许你可以把它作为回答,所以我可以接受它 –
完成。看到我的答案。 –