РЕДАКТИРОВАТЬ: мои извинения, это была проблема MSSQL2008.
У меня проблема с SQL, с которой я постоянно сталкивался и обычно просто решал с помощью вложенного запроса. Я надеюсь, что кто-то может предложить более элегантное решение.
Часто случается, что мне нужно выбрать набор результатов для пользователя, обусловленный тем, что он является самым последним или наиболее значительным или каким-либо другим.
Например: создан их полный список страниц, но мне нужно только самое последнее имя, которое они применили к странице. Случается, что база данных содержит много записей для каждой страницы, и желательна только самая последняя.
Я использовал вложенный выбор, например:
SELECT pg.customName, pg.id
FROM (
select id, max(createdAt) as mostRecent
from pages
where userId = @UserId
GROUP BY id
) as MostRecentPages
JOIN pages pg
ON pg.id = MostRecentPages.id
AND pg.createdAt = MostRecentPages.mostRecent
Есть ли лучший синтаксис для выполнения этого выбора?