gpt4 book ai didi

ruby-on-rails - 在 Rails 4/Mysql 数据库中按周分组

转载 作者:行者123 更新时间:2023-12-04 01:56:11 27 4
gpt4 key购买 nike

在rails AR中有什么方法可以按周分组

answers = Answer.all

daily_answer_count = {}
answer.where("val = 5").group('date(created_at)').count.map{|k,v| daily_answer_count["#{k.strftime("%Y-%m-%d")}"] = v}

Output
{
"2016-03-05": 65
"2016-03-06": 57
"2016-03-07": 45
}

所以问题是我需要为每周偏差创建一个像上面那样的 HashMap 所以关键是一周的开始,值(value)将是一周的总值(value)。

使用 Rails AR 的任何直接方式

最佳答案

如果您使用的是 MySQL,则可以利用一些日期/时间函数进行分组,例如 YEARWEEK function它以整数形式返回年份和周。

answer.where("val = 5").group('yearweek(created_at)').count
=> {
201601 => 34,
201602 => 35
}

如果您想按周分组而不考虑年份,请使用 WEEK function :

answer.where("val = 5").group('week(created_at)').count
=> {
01 => 23,
02 => 54
}

查看 WEEK function docs决定您想要的一周的精确定义(例如从星期一开始的一周还是从星期日开始的一周)。

我相信在其他数据库中也有类似的功能。

关于ruby-on-rails - 在 Rails 4/Mysql 数据库中按周分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35963149/

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