sql-server – 只获取每天TSQL中多个条目的最后一行

前端之家收集整理的这篇文章主要介绍了sql-server – 只获取每天TSQL中多个条目的最后一行前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一张桌子,类似于:
Id        Name        EnteredOn                    Percentage
`````````````````````````````````````````````````````````````
01        person1     2011-03-09 17:29:35.683      56.29
02        person1     2011-03-09 17:29:35.731      76.29
03        person1     2011-03-09 18:15:78.683      56.29
04        person1     2011-03-10 17:29:35.683      56.29
05        person1     2011-03-10 16:29:31.683      56.29
06        person1     2011-03-11 17:29:35.683      56.29

总结上表,第09天有三行,第10天有两行.

现在,我只想选择最新的行 – 每行一行.
(一行为9,一行为10,一行为11)

由于时间戳,我不能使用distinct.我不能分组并使用:

CAST(CONVERT(FLOAT,EnteredOn) AS INT)

因为当我选择EnteredOn字段时,它会抱怨它没有分组.我不能组合distinct(cast..date …),因为我无法获得正确的语法.

我如何选择 – 只有Name,EnteredOn,Percentage字段与每天不同?

提前谢谢了.

解决方法

;with cte as
(
  select
    *,row_number() over(partition by datediff(d,EnteredOn) order by EnteredOn desc) as rn 
  from YourTable
)
select *
from cte  
where rn = 1
原文链接:https://www.f2er.com/mssql/84334.html

猜你在找的MsSQL相关文章