1

次の列を持つテーブルがあります。idnamevote

それぞれの名前は一意であり、各投票はnullであるか、名前が含まれています。

各人の投票数と各人に投票した人を返すために、MySQLステートメントが必要です。

私はこれに3時間取り組んできましたが、完全に途方に暮れているので、正直言って、それがどれほど非効率的であるか、またはあなたがそれをどのように行うかは気にしません。

4

5 に答える 5

3

SELECT name, count(*) as num_votes, GROUP_CONCAT(vote) as voted_by FROM table GROUP BY 1

于 2011-12-09T22:25:53.013 に答える
2

投票数:

select 
 count(*) as numVotes, 
 vote
from
 voteTable
where
 vote IS NOT NULL
group by 
 vote
order by
 numVotes desc

それぞれに投票した人:

Select
 name,
 vote
from
 voteTable

...私が何かを読み間違えない限り、それはそれほど単純なはずです

于 2011-12-09T22:26:16.257 に答える
2
select count(name), id from your_table where vote is not null group by (name) 
于 2011-12-09T22:27:31.167 に答える
1

1人あたりの投票数を取得するには:

select vote, 
       count(*) as nbr_of_votes 
  from table 
 where vote is not null 
 group by vote 
 order by nbr_of_votes desc;

誰が誰に投票したかを取得するには、基本的にテーブル全体を選択し、nullを除外する必要があります

select vote, 
       name 
  from table
 where vote is not null 
 order by vote;
于 2011-12-09T22:27:41.683 に答える
0
SELECT VOTE, COUNT(1) Number_Of_Votes,
GROUP_CONCAT(Name)
WHERE VOTE is Not NULL
GROUP BY VOTE
于 2011-12-09T22:32:35.983 に答える