0

答えを探していますが、テーブルに適用できる、または理解できるものは見つかりませんでした。

私はVote2つのフィールドで呼び出されたテーブルを持ってidVotantおり、idVoteidVotantは投票を行った人であり、idVote彼が投票した人です)

私がこれを使用する場合:

SELECT count(idVote) FROM Vote WHERE idVote=6

男 n°6 が獲得した投票数を取得します。

私がこれを使用する場合:

SELECT idVote,count(idVote) AS votes FROM Vote GROUP BY idVote ORDER BY votes DESC

私は全員のリストと彼らが持っている投票数を取得します。

今、私がやりたいのは、各人の位置と特定の人の位置を取得することです。
より多くの票を獲得したため、6 番の男が 1 位になり、2 番の男が 2 番目になります。
そして、男の位置を尋ねると、どの位置が男 n°3 ですか?

4

3 に答える 3

0

これを試して:

SELECT @rownum:=@rownum+1 AS position, u.idVote, u.votes
FROM (
    SELECT idVote, count(idVote) AS votes FROM Vote GROUP BY idVote ORDER BY votes DESC
) u,
(SELECT @rownum:=0) r

ここでデモを参照してください。私は基本的にSQLクエリをクエリ内にラップしましrownum

特定の人を見つけるには、これを使用します。

SELECT * FROM (
  SELECT @rownum:=@rownum+1 AS position, u.idVote, u.votes
  FROM (
    SELECT idVote, count(idVote) AS votes FROM Vote GROUP BY idVote ORDER BY votes DESC
  ) u,
  (SELECT @rownum:=0) r
) ranked_vote WHERE idVote=6
于 2013-05-13T12:45:26.260 に答える
0

以下を試してください:

 SELECT idVote,count(idVote) AS votes,ROW_NUMBER() OVER (ORDER BY count(idVote) desc)  AS Rank
       FROM Vote 
       GROUP BY idVote
       ORDER BY count(idVote) 
       DESC

SQLFIDDLE

お役に立てば幸いです。

于 2013-05-13T12:47:09.577 に答える