2013-06-03 68 views
0

我在下面的代碼中有一個oracle SQL查詢。此代碼可查找每個成員的用戶名以及他們每年投了多少次。我怎樣才能修改它,以便它只顯示投票次數最多的用戶?Oracle SQL查詢 - 僅顯示最大值?

SELECT username, count(username), extract(year from voteDate) as vote_year, 
max(count(*)) over (partition by extract(year from voteDate)) as Max_votes 
FROM rankingInfo NATURAL JOIN memberinfo 
GROUP BY username, extract(year from voteDate); 

回答

1

如果我正確理解你的問題時,你max_votes回到你想要的最多投票數和你count(username)回報每個用戶的投票。如果是這樣,你可以把結果放在一個子查詢,然後只需添加WHERE標準:

SELECT * 
FROM (
    SELECT username, count(username) votes, extract(year from voteDate) as vote_year, 
     max(count(*)) over (partition by extract(year from voteDate)) as Max_votes 
    FROM rankingInfo NATURAL JOIN memberinfo 
    GROUP BY username, extract(year from voteDate) 
) T 
WHERE votes = max_votes 
+0

'+ 1'好'回答:)' –