【发布时间】:2011-09-30 07:16:48
【问题描述】:
我有一张选票,每个选民有 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
【问题讨论】:
标签: sql-server count