2011-08-11 39 views
0

我遇到查詢問題。這是查詢。在SQL中使用分區

SELECT UserID, MAX(UserName) as UserName, MAX(TransactionTime) as TransactionTime,   MAX(LastAction) as LastAction 
FROM UserActivities 
WHERE OrganizationID = 26465 
GROUP BY UserID 

有在不同TRANSACTIONTIME特定用戶這麼多條記錄。 我想將LastAction和其他記錄一起使用。 我該怎麼辦? SQL分區會在這裏工作嗎?

回答

2

一個ranking function可能是你在找什麼:

SELECT * 
FROM (
    SELECT UserID, UserName, LastAction, row_number() over(partition by UserId order by TransactionTime desc) RowNo 
    FROM UserActivities 
    WHERE OrganizationID = 26465 
) t 
where t.RowNo = 1 
+0

謝謝你這麼多安德烈亞斯,其完美的工作。 – Mukesh