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;