OFFSET / LIMIT仅计算Activerecord查询中的DISTINCT值

时间:2014-11-10 00:43:17

标签: activerecord ruby-on-rails-4 limit distinct offset

我正在运行此查询

Playlistship.order("created_at desc").select("distinct playlist_id").limit(12).offset(2)

此查询不一定返回12条记录。它返回由LIMITOFFSETORDER参数定义的12个集合中的不同记录的数量。

例如,如果Playlistships = 13和id = 24之间的id有[{1}} [2,3,3,5,6,3,5, 6,8,11,12,12],那么这个查询只会返回7条记录,对应于第一条记录playlist_ids [2,3,5,6,8,11,12]。 / p>

我想要找到的是一个查询,它产生12个具有不同playlist_ids的记录,具有正确的偏移量,以便再次以playlist_ids 3运行此查询将产生接下来的12条记录具有不同的OFFSET

希望我没有“过度解释”这个,因为我认为这是一个相对简单的问题。如果您需要,请询问更多详细信息。

谢谢!

1 个答案:

答案 0 :(得分:0)

您是否尝试过子查询?试一试:

Playlistship.select("distinct playlist_id").limit(12).where(playlist_id: Playlistship.order("created_at desc").select('playlist_id').offset(2))