Вы пробовали что-то вроде
SELECT UserID,
MAX(ImageRefID) LastUserImageID
FROM UserImages
GROUP BY UserID
Если эта схема должна измениться на 1-1, вам, вероятно, следует включить ImageRedID в таблицу Users.
Используя Sql Server 2005, вы также можете удалить их из таблицы напрямую.
Посмотрите на следующий пример.
DECLARE @UserImages TABLE(
ImageRefID INT,
UserID INT
)
INSERT INTO @UserImages SELECT 1, 1
INSERT INTO @UserImages SELECT 2, 2
INSERT INTO @UserImages SELECT 3, 1
INSERT INTO @UserImages SELECT 4, 1
;WITH Vals AS (
SELECT UserID,
ImageRefID,
ROW_NUMBER() OVER(PARTITION BY UserID ORDER BY ImageRefID DESC) RowID
FROM @UserImages
)
DELETE
FROM Vals
WHERE RowID > 1
SELECT *
FROM @UserImages