gpt4 book ai didi

ruby-on-rails - 如何计算日期范围内每一天的记录

转载 作者:数据小太阳 更新时间:2023-10-29 07:23:03 25 4
gpt4 key购买 nike

我有一个投票系统。每票都有一个分数。

我希望能够统计每天有多少票?

下面的代码将每天每张投票的分数相加,并返回一个以总分和日期为键的散列值:

ratings = where(created_at: start.beginning_of_day..Time.zone.now).group("created_at").select("created_at, sum(score) as total_score")
ratings.each_with_object({}) do |rating, scores|
scores[rating.created_at.to_date] = rating.total_score
end

我希望能够计算每天有多少票。有什么想法吗?

最佳答案

你可以使用更好的语法做你想做的事:

from = start.beginning_of_day
to = Time.zone.now
Rating.group('date(created_at)').where(created_at: from .. to).count(:score)

这将针对每一天返回一个以日期 (created_at) 作为键并以 count(:score) 作为值的哈希值。

例子: { "2014-01-21"=> 100, "2014-01-22"=> 1213 }

对应的SQL为:

SELECT COUNT("ratings"."score") AS count_score, date(created_at) AS date_created_at FROM "ratings" WHERE ("ratings"."created_at" BETWEEN '2014-01-21' AND '2014-01-24') GROUP BY date(created_at)

关于ruby-on-rails - 如何计算日期范围内每一天的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21327368/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com