Supponendo che le date di inizio e fine saranno sempre i valori più alti, allora devi eliminare alcune delle colonne da GROUP BY
(avendo tutte le colonne nel GROUP BY
è un po' come usare DISTINCT
) e utilizzare una funzione di aggregazione nell'altra colonna:
SELECT UserId,
MAX(StartDate) AS StartDate,
MAX(EndDate) AS EndDate
FROM usersworktime
GROUP BY UserId;
In caso contrario, puoi utilizzare un 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;