gpt4 book ai didi

ruby-on-rails - 如何使用 Postgres 在 Rails 中按天对记录进行分组

转载 作者:行者123 更新时间:2023-11-29 12:36:40 25 4
gpt4 key购买 nike

所以我发现了这些问题:

还有这个 gem :https://github.com/ankane/groupdate

我希望按天对记录进行分组,格式如下:

[
{ "2016-03-16" => [Record1, Record2, Record3] },
{ "2016-03-17" => [Record1, Record2] },
{ "2016-03-18" => [Obj1, Obj2] }
]

我已经能够使用这段代码获得这种格式:

def group_by_criteria
created_at.to_date.to_s
end

list.group_by(&:group_by_criteria).map {|k,v| { k => v} }

但是,正如其他问题中所解释的那样,这对于大量记录来说效率不高,我想我应该使用数据库中的分组,但我不确定如何获得我正在寻找的格式,我尝试过这样的事情,但我没有得到我所期待的:

list.order("date_trunc('day', created_at) DESC).map{ |k, v| { k => v }}

我怎样才能像这样从数据库中按天对记录进行分组?

最佳答案

因为您最终确实想要将所有记录加载到内存中,所以您的第一个解决方案(在 Ruby 中分组)实际上是您能做的最好的。如果您只想获取每个组中的记录数,或者甚至是逗号分隔的记录名称列表,那么利用 SQL 分组可以帮助优化,但是——因为您确实需要这些记录——没有办法获得事实上,您只需获取所有记录即可。

关于ruby-on-rails - 如何使用 Postgres 在 Rails 中按天对记录进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35873106/

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