如何解决最大投票百分比
假设一个小镇正在举行选举,每个公民都可以随意投票,但投票次数越多,他们的投票就会分裂。
我的输入如下
表: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
解决方法
试试下面的查询。对于您想要的结果,cast to decimal
在这里使用
with MyCTE
as
(
select
voter,Vote,count(*) over(PARTITION BY Vote order
by Vote) as votecount
from town_elections
)
select Voter,cast((cast(100 as decimal(18,2))/cast(votecount as
decimal(18,2)))/100.00 as decimal(18,2)) as percentage from MyCTE
,
您可以简单地使用 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
您也可以使用自连接来获得所需的结果。
请参阅 dbfiddle here。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。