我需要通过DATETIME选择每个memberid的最新记录。
SAY我的表是这样的:
MemberID CreatedDate
188 2013-01-31 08:10:15.990
188 2013-01-31 08:10:15.970
188 2013-01-24 19:36:01.840
244 2013-01-24 19:36:01.840
244 2013-01-31 08:10:15.970
244 2013-01-31 08:10:15.980
OUT:
188 2013-01-31 08:10:15.990
244 2013-01-31 08:10:15.980
SQL QUERY选择最新的基于日期 - 时间 - 毫秒。
提前感谢您的帮助。
答案 0 :(得分:2)
我认为这就是你要找的,你需要将memberID分组并找到最大的CreatedDate
Select memberId, max(CreatedDate) from members
Group By memberId
答案 1 :(得分:2)
最简单的是使用像ROW_NUMBER
这样的排名函数:
WITH CTE AS
(
SELECT MemberID, CreatedDate,
RN = ROW_NUMBER() OVER (PARTITION BY MemberID
ORDER BY CreatedDate DESC)
FROM dbo.TableName
)
SELECT MemberID, CreatedDate FROM CTE WHERE RN = 1
这只会返回每MemberID
个记录(最新CreatedDate
的记录)。如果您有多个最新记录,则会执行任意记录。如果您想在这种情况下全部使用,则必须将ROW_NUMBER
替换为DENSE_RANK
。
答案 2 :(得分:1)
这是你在找。
select memberid,max(createddate) createddate from Table
group by memberid