最大投票百分比[关闭]

Posted

技术标签:

【中文标题】最大投票百分比[关闭]【英文标题】:Maximum vote percentage [closed] 【发布时间】:2021-09-24 02:30:39 【问题描述】:

假设一个小镇正在举行选举,每个公民都可以根据自己的意愿投票,但投票次数越多,他们的选票就会分裂。

我的输入如下所示

表格:town_elections

Voter Vote
Jane Jane 
Howard Jane
John Howard
John Jane
Jane John
Sara Howard

期望:

Jane    Jane   0.33
Howard  Jane   0.33
John    Howard 0.5
John    Jane   0.33
Jane    John   1.0
Sara    Howard 0.5

【问题讨论】:

对不起,我没有使用 sql server 2005,我需要根据投票份额进行拆分 根据问题指南,请展示您的尝试并告诉我们您发现了什么(在本网站或其他地方)以及为什么它不能满足您的需求。 我看不出预期的结果是如何从解释中得出的。当简只投了两次票时,为什么简/简是 0.33? Sara 只投了一次,为什么她的权重是 0.5? 【参考方案1】:

试试下面的查询。为了您想要的结果,这里使用cast to decimal

with MyCTE
as
(
select 
voter,
Vote,
count(*) over(PARTITION BY Vote order 
by Vote) as votecount
from town_elections
)
select Voter,Vote, cast((cast(100 as decimal(18,2))/cast(votecount as 
decimal(18,2)))/100.00 as decimal(18,2)) as percentage from MyCTE

【讨论】:

【参考方案2】:

您可以简单地用group by 计算选票,然后根据与计数的匹配来划分每一行。

尝试以下方法:

;with cte as
(
   select vote, count(vote) cnt
   from yourtable t
   group by vote
)

select t.*, cast(1.0/cnt as numeric(5,2)) as share
from yourtable t
join cte on cte.vote = t.vote

你也可以使用self join来得到想要的结果。

请看 dbfiddle here

【讨论】:

以上是关于最大投票百分比[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

实现投票,显示人数百分比的功能

php结合mysql和jquery做简单的投票小程序

2016/3/30 ①投票checkbox ②进度条两个div套起百分比控制内div(width) <div><div></div></div>

投票系统例题

基于php004网络投票在线投票系统

SQL 计算具有相同 sub_id 的两个值的百分比。