最大投票百分比[关闭]
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。
【讨论】:
以上是关于最大投票百分比[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
2016/3/30 ①投票checkbox ②进度条两个div套起百分比控制内div(width) <div><div></div></div>