Zakładając że daty rozpoczęcia i zakończenia zawsze będą najwyższymi wartościami, musisz usunąć niektóre kolumny z GROUP BY (mający wszystkie kolumny w GROUP BY to trochę jak używanie DISTINCT ) i użyj funkcji agregującej w drugiej kolumnie:
SELECT UserId,
MAX(StartDate) AS StartDate,
MAX(EndDate) AS EndDate
FROM usersworktime
GROUP BY UserId;
W przeciwnym razie, jeśli tak nie jest, możesz użyć CTE i 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;