嗨,我有这张桌子。
id lat lng userId
1 12 23 1
2 45 34 2
3 42 34 3
4 33 34 1
5 36 79 2
6 53 98 2
7 23 90 3
8 23 67 1
这里我们有三个用户。 (用户ID 1,2,3)。我想获取每个用户的最新记录(id列最大值)。我的例外输出是此
userId lat lng
1 23 67
2 53 98
3 23 90
此查询将给我按选项分组
SELECT
*
FROM
covid.locations
GROUP BY userId;
但是如何将其与MAX(id)
功能结合使用。
一种方法是使用以下内容:
SELECT
cl.*
FROM covid.locations cl
INNER JOIN (
SELECT
userid
, MAX( id ) mid
FROM covid.locations
GROUP BY
userId
) g ON cl.userid = g.userid
AND cl.id = cl.mid
另一个是要使用row_number() over()