3

複数の候補者と投票の選挙結果の表があります。各投票でどの候補者が最も多くの票を獲得したかを判断する必要があります。

テーブル内のデータのサンプルを次に示します。

PollID NomineeID 投票
1 1 108
1 2 145
1 3 4
2 1 10
2 2 41
2 3 0

提案や誰かが私に提供できる助けをいただければ幸いです。

4

4 に答える 4

3

これは最高値に一致し、引き分けにもなります。

select sd.*
from sampleData sd
    inner join (
        select PollID, max(votes) as MaxVotes
        from sampleData
        group by PollID
    ) x on
        sd.PollID = x.PollID and
            sd.Votes = x.MaxVotes
于 2013-10-08T20:58:38.720 に答える
2
SELECT 
  t.NomineeID,
  t.PollID
FROM 
  ( SELECT
      NomineeID,
      PollID, 
      RANK() OVER (PARTITION BY i.PollID ORDER BY i.Votes DESC) AS Rank
    FROM SampleData i) t
WHERE 
  t.Rank = 1
于 2013-10-08T21:06:23.600 に答える
0
SELECT PollID, NomineeID, Votes
FROM 
table AS ABB2
    JOIN
       (SELECT PollID, MAX(Votes) AS most_votes
        FROM table) AS ABB1 ON ABB1.PollID = ABB2.PollID AND ABB1.most_votes = ABB2.Votes

同じ投票で得票数が同じ候補者が 2 人いる場合、両方ともこのクエリを使用して抽出されます。

于 2013-10-08T21:02:29.017 に答える