【发布时间】:2016-10-27 12:18:22
【问题描述】:
假设一个小镇正在举行选举,每个公民都可以根据自己的意愿投票,但投票次数越多,他们的选票就会分裂,而且他们不能重复投票。
Voter Vote
---------------
Jane Jane
Howard Jane
John Howard
John Howard
Jane John
Sara Howard
您将如何在 SQL 查询中确定获胜者是谁?
我是一个基本用户,所以我得到的只是
SELECT
vote, COUNT( vote)
FROM
table1
GROUP BY
vote
这不考虑重复或投票的分裂。
帮助?
【问题讨论】:
-
SELECT vote,COUNT(distinct voter) FROM table1 group by vote
-
你如何定义“分裂”?选票是否平均分配?也就是说,如果一个选民投票 n 次,每次投票是否算作 1/n?
-
你说 - “他们不能重复投票”,但你的例子有重复。
-
我认为您的示例中需要一些“ORDER BY”逻辑。换句话说,也许是一个日期,或者一个“投票顺序”......这样你就知道每个选民的第一次投票是什么(因此是全权重),而后续投票的权重较小......例如,简投票给Jane 和 John 都.. 但哪一个得到了全重,哪一个得到了一半?
标签: sql