合计投票结果
我有一张选票,每个选民获得 3 票,从 10 名不同的候选人中进行选择。投票 1 得 3 分,投票 2 得 2 分,投票 3 得 1 分。
我有以下 SQL 查询来计算每次投票获得的总分(因此投票 1、2 和 3 的结果是分开的)。
我需要做的是将所有这些结果放在一个表中,但我不太确定从哪里开始。
SELECT cn.cand_name, (count(vote_1) * 3) as vote_1 FROM candidate_votes cv Inner Join candidate_names cn ON cv.vote_1 = cn.cand_number GROUP BY cand_name;
SELECT cn.cand_name, (count(vote_2) * 2) as vote_2 FROM candidate_votes cv Inner Join candidate_names cn ON cv.vote_2 = cn.cand_number GROUP BY cand_name;
SELECT cn.cand_name, (count(vote_3) * 1) as vote_3 FROM candidate_votes cv Inner Join candidate_names cn ON cv.vote_3 = cn.cand_number GROUP BY cand_name;
我有以下结果表:
Voter_number Vote_1 Vote2 Vote3
123 cand_1 cand_3 cand_2
456 cand_2 cand_1 cand_3
789 cand_2 cand_3 cand_1
以及以下候选者姓名表:
cand_number cand_name
cand_1 Dave
cand_2 Sarah
cand_3 Nigel
所以我正在寻找的结果将类似于:
Candidate Votes
Dave 6
Sarah 7
Nigel 5
I have a ballot where each voter gets 3 votes, choosing from 10 different candidates. Vote 1 is allocated 3 points, vote 2 gets 2 points and vote 3 gets 1 point.
I have the following SQL queries to total the number of points gained from each of the votes (so separate results for votes 1, 2 and 3).
What I need to do is put all these results together in a single table, but I'm not too sure where to start.
SELECT cn.cand_name, (count(vote_1) * 3) as vote_1 FROM candidate_votes cv Inner Join candidate_names cn ON cv.vote_1 = cn.cand_number GROUP BY cand_name;
SELECT cn.cand_name, (count(vote_2) * 2) as vote_2 FROM candidate_votes cv Inner Join candidate_names cn ON cv.vote_2 = cn.cand_number GROUP BY cand_name;
SELECT cn.cand_name, (count(vote_3) * 1) as vote_3 FROM candidate_votes cv Inner Join candidate_names cn ON cv.vote_3 = cn.cand_number GROUP BY cand_name;
I have the following results table:
Voter_number Vote_1 Vote2 Vote3
123 cand_1 cand_3 cand_2
456 cand_2 cand_1 cand_3
789 cand_2 cand_3 cand_1
And the following candidate name table:
cand_number cand_name
cand_1 Dave
cand_2 Sarah
cand_3 Nigel
So the results I'm looking for will look something like:
Candidate Votes
Dave 6
Sarah 7
Nigel 5
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这还允许您添加所有投票
编辑:行将乘以 JOIN,这就是 cand2 和 cand3 错误的原因
This also allows you to add all votes
Edit: rows are being multiplied by the JOIN which is why it's wrong for cand2 and cand3