SQL:将2列的值相加的最大值

时间:2018-09-06 10:51:25

标签: mysql

所以我有一个这样的表“记录”:

name     month     year
Rafael   9         2018
Rafael   5         2018
Rafael   10        2017

我想获得我的最新记录(Rafael,2018年9月)。我考虑过对月份和年份进行求和,并得到如下最大值:

select * from records, max(month + year) as max_date

但似乎不对。感谢您的帮助

3 个答案:

答案 0 :(得分:2)

您是说跟随者的输出吗?

select *
from records
order by year desc, month desc
limit 1

通常,为此使用一种DATE或DATETIME列类型会更有用,如果需要,您可以在其中提取年份和月份。

答案 1 :(得分:2)

使用ORDER BY子句,可以获得最高的年份和月份组合。请尝试以下操作:

SELECT *
FROM records
ORDER BY year DESC, month DESC
LIMIT 1

答案 2 :(得分:0)

如果要设置最大月份和最大年份,请使用concat

    Select name ,concat (concat( max(month), '-'),max(year)) from records
    Group by name

但是,如果您只想获取年度最大年份日期信息,请在下面使用

Select * from records
     order by year desc
     limit 1

https://www.db-fiddle.com/f/sqQz1WEEAukoWEWkbxBYxe/0

name    month   year
Rafael   9      2018