how to use DISTINCT ON with mysql using ActiveRecord

前端 未结 2 1845
一向
一向 2020-12-02 03:23

Want all the latest visit of all the distinct user.

For this I am using below query

Event.order(time: :desc).select(\'DISTINCT ON(user_id) user_id,          


        
2条回答
  •  一向
    一向 (楼主)
    2020-12-02 03:43

    So you want all user visits with last visited time.

    Instead of use DISTINCT function, you can use GROUP with MAX function.

    Query looks like

    Events.group(:user_id).maximum(:time)
    

    This Outputs your desired results

    {21=>Tue, 18 Dec 2018 11:15:24 UTC +00:00, 23=>Thu, 20 Dec 2018 06:42:10 UTC +00:00}
    

    Hope this works for you.

    FYI DISTINCT ON(columns). is PostgreSQL Syntax.

提交回复
热议问题