计算 ruby 中真实元素的百分比
Counting percentage of true elements in ruby
class Constituency < ActiveRecord::Base
has_many :votes
end
class Vote <ActiveRecord::Base
belongs_to :constituency
end
我有一个包含选票的数据库,每张选票都有布尔属性 "valid_vote"。
我想得到的选票在每个选区有多少(百分比),但只计算有效选票。所以 100% 是所有投票,其中 valid_vote == true。
有什么想法我应该怎么写吗?
获取所有有效票数占所有票数的百分比运行:
all_votes_count = constituency.votes.count
valid_votes_count = constituency.votes.where(valid_vote: true).count
if all_votes_count > 0
percent = valid_notes_count / all_votes_count
else
puts "no votes"
end
您可以像这样使用单个 SQL 查询来完成此操作:
h = votes.group(:valid_vote).count
percentage = 100.0 * h[true] / h.values.sum rescue 0
class Constituency < ActiveRecord::Base
has_many :votes
end
class Vote <ActiveRecord::Base
belongs_to :constituency
end
我有一个包含选票的数据库,每张选票都有布尔属性 "valid_vote"。 我想得到的选票在每个选区有多少(百分比),但只计算有效选票。所以 100% 是所有投票,其中 valid_vote == true。 有什么想法我应该怎么写吗?
获取所有有效票数占所有票数的百分比运行:
all_votes_count = constituency.votes.count
valid_votes_count = constituency.votes.where(valid_vote: true).count
if all_votes_count > 0
percent = valid_notes_count / all_votes_count
else
puts "no votes"
end
您可以像这样使用单个 SQL 查询来完成此操作:
h = votes.group(:valid_vote).count
percentage = 100.0 * h[true] / h.values.sum rescue 0