想定 開始日と終了日は常に最大値になるため、GROUP BY
からいくつかの列を削除する必要があります (GROUP BY
にすべての列があります DISTINCT
を使用するようなものです )そして他の列で集計関数を使用します:
SELECT UserId,
MAX(StartDate) AS StartDate,
MAX(EndDate) AS EndDate
FROM usersworktime
GROUP BY UserId;
それ以外の場合は、そうでない場合は、CTEと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;