mysql取多个最大值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql取多个最大值相关的知识,希望对你有一定的参考价值。

参考技术A 如截图,查询占line_id最多的stop

1、常规思路如下,这样只能查出指定的1条、2条最大记录,满足不了同时存在多个最大值的情况

2、继续思考,通过先取得最大值 条件判断查出所有最大值数据

3、语句太长,如何优化?效率更高

如何在Mysql取出来的结果中取最大值

文章目录

背景

在一个表,例如log_order表中,有两个常见字段,即create_timeupdate_time,现在我要获取两者中时间最大的那个应该如何获取呢


常见误区

正常搜索的话,大部分出来的都是MAX函数,以为是要取字段中的最大值,也就是一整列中的最大值
其实不是!
我们需要的是, 多个值中的最大值!

百度以为你需要的👇

select max(create_time) from log_order

我们真正需要的👇

  1. 获取create_time最大值
select max(create_time) from log_order
  1. 获取update_time最大值
select max(update_time) from log_order
  1. 比较两者最大值, 再取最大值
max_create_time > max_update_time ? max_create_time max_update_time

解决办法

万能的Mysql其实早就已经预设好了这种处理方案,那就是

Greatest函数!

其实只需要一行SQL即可解决我们的问题
select GREATEST(max(create_time),max(update_time)) from log_order

GREAT!

以上是关于mysql取多个最大值的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 查询版本控制表中存在多个版本记录如何实现只取最大版本号对应记录

如何在Mysql取出来的结果中取最大值

如何在Mysql取出来的结果中取最大值

mysql按时间段取和 并找出最大值

Mysql按字段分组取最大值记录

SQL查询取分组最大值