Sql server SQL Server over查询
我的查询返回每个userid的最新条目,但我需要它返回每个userid和taskname的最新条目。我尝试使用“分组方式”,但出现错误。我做错什么了吗?谢谢Sql server SQL Server over查询,sql-server,Sql Server,我的查询返回每个userid的最新条目,但我需要它返回每个userid和taskname的最新条目。我尝试使用“分组方式”,但出现错误。我做错什么了吗?谢谢 SELECT UserId, TaskName, First, Last, email, ValueDate, Analysis FROM (SELECT UserId, TaskName, First, Last, email, ValueDate, Analysis, ROW_NUMBER() OVER(PARTITION BY Us
SELECT UserId, TaskName, First, Last, email, ValueDate, Analysis
FROM (SELECT UserId, TaskName, First, Last,
email, ValueDate, Analysis,
ROW_NUMBER() OVER(PARTITION BY UserID
ORDER BY ValueDate DESC) AS rk
FROM MyTable) AS L
WHERE rk = 1
如果没有一些要测试的数据和表结构,我只能假设您真正想要实现什么,但它可能是这样的:
SELECT UserId, TaskName, First, Last, email, max(ValueDate), Analysis
FROM MyTable
GROUP BY UserId, TaskName, First, Last, email, Analysis
ORDER BY MAX(ValueDate) DESC
您应该将按用户ID划分的分区替换为按用户ID划分的分区,TaskName:
SELECT UserId, TaskName, First, Last, email, ValueDate, Analysis
FROM (SELECT UserId, TaskName, First, Last,
email, ValueDate, Analysis,
ROW_NUMBER() OVER(PARTITION BY UserID, TaskName
ORDER BY ValueDate DESC) AS rk
FROM MyTable) AS L
WHERE rk = 1