編輯:我的歉意,這是一個MSSQL2008問題。選擇符合條件的首選項的方法
我有一個SQL問題,我反對例行公事,通常只是解決W /嵌套查詢。我希望有人能提出更優雅的解決方案。
它經常發生,我需要選擇一個用戶的結果集,條件是它是最近的,或最大的或任何。
例如:他們創建的頁面的完整列表,但我只想要他們應用於頁面的最新名稱。恰巧,數據庫包含每個頁面的許多條目,並且只有最近的條目是所需的。
我一直在使用嵌套選擇,如:
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
是否有更好的語法來執行這個選擇?
假設pg.id是一個標識列是'選擇不同'需要?或者是因爲分組? – Darknight 2010-05-28 18:25:00
看看原作者的查詢,pg.id似乎不是一個標識列。 – Tommi 2010-05-29 07:03:05