2011-07-11 91 views
2

查詢執行後,如何知道特定用戶的等級?這是在SQL Server 2005中。例如,我使用的查詢是:如何在執行查詢後獲取記錄的序列號?

CREATE PROCEDURE [dbo].[getmyRankinContest] 
@UserID int 
AS 
BEGIN 

    select userid, 
    from 
    invitecount 
    group by userid 
    order by sum(points) desc 
END 

@UserID是我UserID。如何在上面的代碼中添加@UserID以獲得我的排名?有什麼建議嗎?

在此先感謝..

回答

4

你可以嘗試這樣的事情:

CREATE PROCEDURE [dbo].[getmyRankinContest] @UserID int 
AS 
BEGIN 
    ;WITH CTE AS 
    (
     SELECT userId, RANK() OVER(ORDER BY Points DESC) Ranking 
     FROM ( SELECT userid, SUM(points) Points 
       FROM invitecount 
       GROUP BY userid) A 
    ) 
    SELECT * 
    FROM CTE 
    WHERE UserId = @UserID 
END 
+2

+1我轉換你的答案爲[Data.SE查詢](http://data.stackexchange.com/stackoverflow/s/1593) –

+0

這是非常有用的,謝謝.....現在我知道我的排名是什麼(雖然我寧願不說) – Lamak

+0

謝謝拉瑪克:)它像一個寶石。再次感謝。 – Remo