2011-08-11 16 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

関連する問題