我需要使用UserID按组从表中选择最后一条记录
我需要从按用户ID分组的最后一个记录中选择StartDate,EndDate
我正在使用下面的代码
select StartDate,EndDate from usersworktime group by userid,StartDate,EndDate
问题是我要获取所有行而不是表的最后两行
答案 0 :(得分:2)
假设,开始日期和结束日期将始终是最高值,那么您需要从GROUP BY
中删除某些列(将{{1}中的所有列}有点像使用GROUP BY
),并在另一列上使用了聚合函数:
DISTINCT
否则,如果不是这种情况,则可以使用CTE和SELECT UserId,
MAX(StartDate) AS StartDate,
MAX(EndDate) AS EndDate
FROM usersworktime
GROUP BY UserId;
:
ROW_NUMBER
答案 1 :(得分:0)
我想我找到了解决方法
SELECT usersworktimeid, userid,StartDate, EndDate
FROM usersworktime
WHERE usersworktimeid IN (
SELECT MAX(usersworktimeid)
FROM usersworktime
GROUP BY UserID
);