DECLARE @persons TABLE(personid INT,version INT)INSERT @personsVALUES(1,1),(1,2),(1,3),(2,1),(2,2),(3,1),(4,1),(4,2)SELECTpersonid,maxversion = MAX(version)FROM @personsGROUP BY personidORDER BY personid
DECLARE @persons TABLE(personid INT,version INT);INSERT @personsVALUES(1,1),(1,2),(1,3),(2,1),(2,2),(3,1),(4,1),(4,2);SELECTpersonid,maxversion = MAX(version)FROM @personsGROUP BY personidORDER BY personid;WITH BaseData AS (SELECT personid, version, ROW_NUMBER() OVER (PARTITION BY personid ORDER BY version DESC) rnFROM @persons)SELECT personid, versionFROM BaseDatawhere rn = 1;