Rails: group by and max, pluck 删除 select

Rails: group by and max, pluck removes select

所以,我试图找出 author_ids 的 post 人,他们最近的 post 获得了 10-50 个赞。这是我正在尝试做的事情:

Post.select('MAX(created_at) as created_at, author_id')
.group(:author_id)
.where('likes > 10')
.where('likes < 50')

它工作得很好,但是当我添加 pluck[:author_id] 时,它会从 select 中删除 SELECT MAX(。我如何只获得 author_ids ?

试试这个

Post.where(likes: [10..50]).pluck[:author_id].uniq

这是一种有点不同的方法,因为我更喜欢利用 ruby 语法而不是直接查询,但它应该可以正常工作

pluck 这样做,删除 select.

中的内容

另一方面,map 满足您的需求。

Post.select('MAX(created_at) as created_at, author_id')
 .group(:author_id)
 .where('likes > 10')
 .where('likes < 50')
 .map(&:author_id)