Hvis du bruger SQL-Server (minimum 2005) kan du bruge en CTE
med ROW_NUMBER
fungere. Du kan bruge CAST
for version for at få den korrekte rækkefølge:
WITH cte
AS (SELECT id,
userid,
version,
datetime,
Row_number()
OVER (
partition BY userid
ORDER BY Cast(version AS INT) DESC) rn
FROM [dbo].[table])
SELECT id,
userid,
version,
datetime
FROM cte
WHERE rn = 1
ORDER BY userid
ROW_NUMBER
returnerer altid én post, selvom der er flere brugere med samme (øverste) version. Hvis du vil returnere alle "top-version-bruger-records", skal du erstatte ROW_NUMBER
med DENSE_RANK
.