Mysql SQL查找另一列具有最大但可重复值的列的最大值

Mysql SQL查找另一列具有最大但可重复值的列的最大值,mysql,sql,max,Mysql,Sql,Max,我有以下表格: id year month 1 2019 9 2 2019 10 3 2019 11 4 2019 12 5 2020 1 6 2020 2 7 2020 3 8 2020 4 我需要选择列“月份”的最大值,但只能从“年度”中选择最大值。 在这种情况下,我需要选择行 id max_year max_month 8 2020 4 我试着用这个 SELECT m.id

我有以下表格:

id  year    month
1   2019    9
2   2019    10
3   2019    11
4   2019    12
5   2020    1
6   2020    2
7   2020    3
8   2020    4
我需要选择列“月份”的最大值,但只能从“年度”中选择最大值。 在这种情况下,我需要选择行

id  max_year    max_month
8   2020        4
我试着用这个

SELECT m.id, m.max_year, MAX(m.month) AS max_month FROM (SELECT id, month, MAX(year) AS max_year FROM tbl_months GROUP BY id) AS m GROUP BY m.id
幸运的是我得到了

id  max_year    max_month
5   2020    1
6   2020    2
7   2020    3
8   2020    4
有什么线索吗? 有没有其他方法使它更简单、更干净

谢谢。

使用订单和限额

作为另一种选择

选择t1。* 从t1开始 其中m=从t2选择maxt2.m,其中y=从t3选择maxt3.y 这种方式称为子查询。我不确定这是否比按订单/限制选项更快,但可能取决于索引。

以cte为例 选择*从温度,其中年份=从温度选择最大年份 ,cte2as 选择*来自临时,其中月份=从临时选择maxmonth
从cte2中选择*戈登,谢谢!又快又干净。我马上就接受,因为你回答得太快了,我现在做不到。
select t.*
from t
order by year desc, month desc
limit 1;