简体   繁体   中英

sql query to select the latest entry of each user

I have a location table in my database which contains location data of all the users of my system.

The table design is something like

 id| user_id| longitude| latitude| created_at|

Now I have a array of user ids and I want to write a sql query to select the latest location of all these users. Can you please help me with this sql query ?

In the user_id in (......) at the end of the query you sould insert your array of user ..

select * from my_table 
where (user_id , created_at) in (select user_id, max(created_at) 
        from my_table
        group by user_id)
and user_id in ('user1','user2',... )  ;
SELECT 
   t1.ID,
   t1.user_id,
   t1.longitude,
   t1.latitude,
   t1.created_at
FROM 
   YourTable t1
INNER JOIN
   (SELECT MAX(id), user_id FROM YourTable GROUP BY user_id) t2 on t2.user_id = t1.user_id
INNER JOIN
   yourArrayTable ON 
   yourArrayTable.user_id = t1.user_id

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM