回答

收藏

Rails查询-每天的最新帖子

技术问答 技术问答 234 人阅读 | 0 人回复 | 2023-09-12

一个Userhas_many6 u+ z3 U/ w& A& C7 u. Y) _5 ^
Posts。我想每天搜索最新的帖子(使用)created_at),忽略其他可能提前写的帖子。提出这个问题的另一种方法可能是按照部门要求每个最高工资收入的员工-+ o1 n4 F8 Y8 A; I; Q& y/ B
我也这么认为。; c' ], E& l; s
如何在Rails(最好是4.0)写这个查询?我觉得这和它有关?group,maximum但我似乎无法理解。有没有办法不用?SQL来做到这一点?
$ g6 \' A2 P: b) ?9 s& L- j为了明确起见,我想回到一系列post对象,它们是每个日期的最后一个写入对象。9 P! k0 _, r. d
谢谢!6 v. N! H$ H4 r1 e5 m& E
                                                               
* f* E4 \) q* i    解决方案:                                                               
8 \, B. N: R: `3 \4 i                                                                它不是很干净,但可以Rails 3(我的例子是从Book在模型中获取)中使用PostgreSQL语法来将created_at截止日期:- L9 a) a0 C9 W9 h
max_created_at_list = Book.select("max(created_at) as created_at").group("date_trunc('day',created_at)")last_books = Book.where(:created_at => max_created_at_list)… 要不就:
( N/ x2 v/ I/ t( v* s; PBook.where(:created_at =>Book.select("max(created_at) as created_at").group("date_trunc('day',created_at)"))你想要大型数据集created_at在数据库级别上建立索引created_at限制为不为null,或者如果你使用它RDBMS不对null使用索引
" C' @) K) ~5 f  d) Y0 N4 }is not null”谓词(例如Oracle)
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则