Supondo que as datas de início e término sempre serão os valores mais altos, então você precisa remover algumas das colunas do
GROUP BY
(tendo todas as colunas no GROUP BY
é como usar DISTINCT
) e use uma função agregada na outra coluna:SELECT UserId,
MAX(StartDate) AS StartDate,
MAX(EndDate) AS EndDate
FROM usersworktime
GROUP BY UserId;
Caso contrário, se não for esse o caso, você pode usar um CTE e
ROW_NUMBER
:WITH CTE AS(
SELECT UserID,
StartDate,
EndDate,
ROW_NUMBER() OVER (PARTITION BY UserID ORDER BY UsersWordTimeID DESC) AS RN
FROM usersworktime)
SELECT UserID,
StartDate,
EndDate
FROM CTE
WHERE RN = 1;