MySQL分组的最大值

问题描述 投票:0回答:1

嗨,我有这张桌子。

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)功能结合使用。

mysql database rdbms
1个回答
0
投票

一种方法是使用以下内容:

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()

© www.soinside.com 2019 - 2024. All rights reserved.