gpt4 book ai didi

sql - 同一天创建的记录数

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

我正在尝试创建一个应该是这样的数组:

[ [created_at date * 1000, count record for that date],
[created_at date * 1000, count record for that date],
[created_at date * 1000, count record for that date] ]

created_at 日期不完全相同,因为有分、时、秒。我在想是否可以将创建时的 created_at 更改为 00:00:00

这个我试过了,

@kliks = Klik.all.map{|klik| [(klik.created_at.to_i * 1000), 1]}

但我还没有弄清楚对同一天创建的那些记录求和。此循环还为每条记录创建一个数组,我不想要总和的重复项。

最佳答案

Rails 有 ActiveRecord::Calculations它旨在在数据库级别执行此类操作。你应该使用它。在这种情况下,count 就是您想要的方法:

@kliks = Klik.count( :group => "DATE( created_at )" )

这等同于以下 SQL:

SELECT *, COUNT(*) FROM kliks
GROUP BY DATE( created_at )

DATE() 函数是 MySQL 更改日期时间(如 created_at,例如 2012-02-27 10:08:59)到一个普通的日期(例如 2012-02-27)。无需将事物转换为整数或将分钟和秒相乘,也无需使用 map 或 Ruby 中的任何其他方法。

关于sql - 同一天创建的记录数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9467915/

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