В SQL это будет работать следующим образом:
WITH i as (
SELECT Id, PageId, Key, Content, dense_rank() over(PARTITION BY Key ORDER BY LastUpdated desc) as pos
FROM myTable
)
SELECT Id, PageId, Key, Content
FROM i
WHERE pos = 1
Здесь я предполагаю, что вы имели в виду «отдельный список по ключу» вместо «отдельный список по идентификатору страницы».
Вы должныИмейте в виду, что в случае, если дата на ключ не уникальна, это вернет все записи для максимальной даты ключа.Если вы просто хотите иметь один из них, вы можете добавить дополнительные поля в ORDER BY.
И если вам все равно, какую из нескольких неуникальных записей на ключ вернуть, вы можете использовать ROW_NUMBER () вместо DENSE_RANK ().