精华内容
下载资源
问答
  • MySQLmax()函数是用来找出一个记录集中的最大值记录。 要了解MAX功能考虑的EMPLOYEE_TBL表具有以下记录: mysql> SELECT * FROM employee_tbl; +------+------+------------+--------------------+ | id | name |...
  • 关于MYSQLMAX函数

    2020-05-24 00:28:51
    经过业务逻辑的判断,发现循环控制的部分可能出现问题,经过排查发现,max函数在没有值时候返回null,jdbc的结果集操作进行resultSet.getLong()时,返回了默认值0(com.mysql.jdbc.ResultSetImpl#getLong(int, ...

    1.结果:

     完善代码循环控制条件

    2.情况说明:

    由于业务需要,需要对数据库的数据进行清洗,在进行循环控制的过程中,会对数据的id的最大值进行判断,但是发现程序无法正常结束。经过业务逻辑的判断,发现循环控制的部分可能出现问题,经过排查发现,max函数在没有值时候返回null,jdbc的结果集操作进行resultSet.getLong()时,返回了默认值0(com.mysql.jdbc.ResultSetImpl#getLong(int, boolean)),导致循环控制失败

    3.处理:

    循环控制增加判断值是否0

    展开全文
  • MySQL max函数优化

    千次阅读 2018-01-22 10:23:28
    select max(sscode) from sm_sku_show where del_flag = "0"; select sscode from sm_sku_show where del_flag = "0" order by sscode desc limit 1; 测试耗时: [SQL] select max(sscode) from s

    测试环境:

    测试Sql:

    select max(sscode) from	sm_sku_show where del_flag = "0";
    select sscode from sm_sku_show where del_flag = "0" order by sscode desc limit 1;
    测试耗时:

    [SQL]
    select max(sscode) from	sm_sku_show where del_flag = "0";
    受影响的行: 0
    时间: 19.503s
    
    [SQL]
    select sscode from sm_sku_show where del_flag = "0" order by sscode desc limit 1;
    受影响的行: 0
    时间: 0.001s
    测试结果:

    +---------------------+
    | max(sscode)         |
    +---------------------+
    | SS20180120101925999 |
    +---------------------+
    1 row in set
    
    +---------------------+
    | sscode              |
    +---------------------+
    | SS20180120101925999 |
    +---------------------+
    1 row in set
    结论:

    max() 函数的需扫描where条件过滤后的所有行。

    请慎用max()函数,特别是频繁执行的sql,若需用到可转化为测试中的  order by id desc limit 1



    展开全文
  • MySQL max()函数

    万次阅读 2018-08-26 23:21:58
    MySQL MAX函数介绍 MySQL MAX()函数返回一组值中的最大值。MAX()函数在许多查询中非常方便,例如查找最大数量,最昂贵的产品以及客户的最大付款。 MAX()函数的语法如下: MAX(DISTINCT expression); 如果添加...

    转载自  MySQL max()函数

    MySQL MAX函数介绍

    MySQL MAX()函数返回一组值中的最大值。MAX()函数在许多查询中非常方便,例如查找最大数量,最昂贵的产品以及客户的最大付款。

    MAX()函数的语法如下:

    MAX(DISTINCT expression);
    

    如果添加DISTINCT运算符,则MAX函数返回不同值的最大值,它与所有值的最大值相同。 这意味着DISTINCT运算符不会对MAX函数产生任何影响(用不用DISTINCT运算符都可以)。

    请注意,DISTINCT运算符在其他聚合函数(如COUNTSUMAVG)中生效。

     

    MySQL MAX函数示例

    我们来看看示例数据库(yiibaidb)中的payments表,其表结构如下所示 -

    mysql> desc payments;
    +----------------+---------------+------+-----+---------+-------+
    | Field          | Type          | Null | Key | Default | Extra |
    +----------------+---------------+------+-----+---------+-------+
    | customerNumber | int(11)       | NO   | PRI | NULL    |       |
    | checkNumber    | varchar(50)   | NO   | PRI | NULL    |       |
    | paymentDate    | date          | NO   |     | NULL    |       |
    | amount         | decimal(10,2) | NO   |     | NULL    |       |
    +----------------+---------------+------+-----+---------+-------+
    4 rows in set
    

    要在payments表中获得最大的付款,您可以使用以下查询:

    SELECT 
        MAX(amount)
    FROM
        payments;
    

    执行上面查询语句,得到以下结果 -

    mysql> SELECT 
        MAX(amount)
    FROM
        payments;
    +-------------+
    | MAX(amount) |
    +-------------+
    | 120166.58   |
    +-------------+
    1 row in set
    

     

    MySQL MAX函数在子查询中

    不仅要获得最大的付款金额,还要获得其他付款信息,如客户编号,支票号码和付款日期,您可以在子查询中使用MAX函数,如下所示:

    SELECT 
        *
    FROM
        payments
    WHERE
        amount = (
     SELECT 
                MAX(amount)
            FROM
                payments);
    

    执行上面查询语句,得到以下结果 -

    +----------------+-------------+-------------+-----------+
    | customerNumber | checkNumber | paymentDate | amount    |
    +----------------+-------------+-------------+-----------+
    |            141 | JE105477    | 2015-03-18  | 120166.58 |
    +----------------+-------------+-------------+-----------+
    1 row in set
    

    上面查询语句是怎么运行的?

    • 子查询返回所有的最大付款金额。
    • 外部查询获取的金额等于从子查询返回的最大金额的其他相关付款信息。

    不使用MAX函数的另一种方法是使用ORDER BY子句以降序对结果集进行排序,并使用LIMIT子句获取第一行,如下查询:

    SELECT 
        *
    FROM
        payments
    ORDER BY amount DESC
    LIMIT 1;
    

    执行上面查询语句,得到以下结果 -

    +----------------+-------------+-------------+-----------+
    | customerNumber | checkNumber | paymentDate | amount    |
    +----------------+-------------+-------------+-----------+
    |            141 | JE105477    | 2015-03-18  | 120166.58 |
    +----------------+-------------+-------------+-----------+
    1 row in set
    

    如果您没有在amount列上创建索引,则第二个查询执行速度更快,因为它会检查payments表中的所有行,而第一个查询会检查payments表中的所有行两次,一次是在子查询中,另一次在外部查询中。 但是,如果amount列被索引,则第一个查询将执行得更快。

    具有GROUP BY子句的MySQL MAX

    要找到每个组的最大值,您可以在SELECT语句中使用MAX函数与GROUP BY子句。

    对于每个客户,查询获得客户已支付的最大付款,可使用以下查询:

    SELECT 
        customerNumber, MAX(amount)
    FROM
        payments
    GROUP BY customerNumber
    ORDER BY MAX(amount);
    

    执行上面查询语句,得到以下查询结果 -

    +----------------+-------------+
    | customerNumber | MAX(amount) |
    +----------------+-------------+
    |            219 | 4465.85     |
    |            198 | 9658.74     |
    |            381 | 14379.9     |
    |            103 | 14571.44    |
    |            473 | 17746.26    |
    |            362 | 18473.71    |
    ******* 此处省略一大波数据 ******
    |            148 | 105743      |
    |            124 | 111654.4    |
    |            141 | 120166.58   |
    +----------------+-------------+
    98 rows in set
    

     

    具有HAVING子句的MySQL MAX

    您可以在HAVING子句中使用GROUP BY子句中的MAX函数,以根据指定的条件为分组添加过滤器。

    例如,以下查询查找每个客户的最大付款; 并根据返回款项,如下面查询语句,只查询金额超过80000的付款 -

    SELECT 
        customerNumber, MAX(amount)
    FROM
        payments
    GROUP BY customerNumber
    HAVING MAX(amount) > 80000;
    

    执行上面查询语句,得到以下结果 -

    +----------------+-------------+
    | customerNumber | MAX(amount) |
    +----------------+-------------+
    |            114 | 82261.22    |
    |            124 | 111654.4    |
    |            141 | 120166.58   |
    |            148 | 105743      |
    |            167 | 85024.46    |
    |            239 | 80375.24    |
    |            321 | 85559.12    |
    +----------------+-------------+
    7 rows in set
    

    在本教程中,我们向您展示了如何使用MySQL MAX函数来查找一组值中的最大值。

    展开全文
  • PowerBuilder中使用JDBC连接MYSQL无法使用COUNT(*) MAX()函数的解决方法
  • MySql中的聚合函数Max()

    2020-04-03 23:47:41
    其实max()函数很简单就是求数据中的最大值,但是参数类型不一样的时候,结果也是不同的 对字符型数据的最大值,是按照首字母由A~Z的顺序排列,越往后,其值越大。当然,对于汉字则是按照其全拼拼音排列的,若首字符...

    其实max()函数很简单就是求数据中的最大值,但是参数类型不一样的时候,结果也是不同的

    对字符型数据的最大值,是按照首字母由A~Z的顺序排列,越往后,其值越大。当然,对于汉字则是按照其全拼拼音排列的,若首字符相同,则比较下一个字符,以此类推。
    因此对于一列数值型的数据求最大值,和把这一列数值型的数据改成数值型的字符串的时候就会有不同的结果,对于数值型的字符串,是先按照第一个字符进行比较9最大,然后再按照第二字符进行比较,以此类推;但是对于数值型的数据求最大值,就是看数据的数值来进行比较。
    

    对于日期时间类型的数据也可以求其最大/最小值,其大小排列就是日期时间的早晚,越早认为其值越小,

    展开全文
  • mysqlMAX()函数MIN()函数

    万次阅读 2016-06-11 15:57:17
    mysqlMAX()函数
  • 主要介绍了Windows 10,MySQL版本是5.7.12-log环境下mysql中聚合函数count的使用和性能优化,需要的朋友可以参考下
  • MySQL中的MAX函数总结

    千次阅读 2015-11-06 20:47:02
    今天,在对一个字段类型为varchar的字段使用MAX函数进行取最大值查询时,发现取到的值始终是9,而表中实际的最大值是20。最后没有办法,只好进入phpmyadmin将该字段转换成了int类型,终于才正常了。 在网上查询了...
  • 今天,在对一个字段类型为varchar的字段(该字段值类似"XXX_克隆" + n)使用MAX函数进行取(_克隆后的n)最大值查询时,发现max函数中的坑,当n为null时,这里查出来的结果为空,取不到想要的最大值(此时应该为0);...
  • Mysql 与聚合函数在一起时候where条件和having条件的过滤时机 where 在聚合之前过滤 当一个查询包含了聚合函数及where条件,像这样的情况 select max(cid) from t where t.id<999>=5 先分组,再聚合,然后过滤聚合...
  • 利用Excel MAX函数或SUBTOTAL函数取得各科成绩的最高分.rar,有一份期末考试成绩表,要求计算出各科成绩的最高分,使用MAX函数或SUBTOTAL函数可以实现之。
  • Max函数 查询出来的只是最大值,但不是最大值的那条记录 发现自己并不会用Max 函数。自己想当然的认为Max 函数查询出来是最大值的那条记录。其实不是的。他只是把那个列中最大值求出来,这时比如:你再加上id , j...
  • MySQL Max()函数的坑

    万次阅读 2018-04-08 17:03:55
    MySQL种,varchar的字段使用MAX函数进行取最大值查询时,发现取到的值始终是9,不论是否多少最终取到都是9. 原因是max() 是对数字类型求最大,而varchar 则会出现异常。 -- varchar 需要先转型在用max() ...
  • MySQL---如何对max()函数进行优化

    千次阅读 2018-05-17 20:41:44
    首先我们用explain语句,先用max函数查找一个表更新时间最大的数据,rows显示,查找了27万多行数据 如果我们在alarming_time字段上建立一个索引,那么,SQL就会大大优化 现在再来看看 SELECT tables ...
  • 解决办法 SELECT MAX(field+0) FROM tablename
  • mysql经典问题之group by和max函数

    千次阅读 2020-05-06 15:26:28
    如果这样使用select name,type,max(score) from order_test GROUP BY type 结果为: 发现第三条数据和原来的数据不一致。 这时就要了解一个特性,group by分组后,则返回的是第一条记录的基本信息的特性 ...
  • MySql聚合函数max()

    2019-10-29 20:04:11
    test表数据 id name tel 1 a a1 2 a a2 3 b b1 4 b b2 5 ...select name,tel,max(id) from test group by name; 查询结果 name tel max(id) a a1 2 b b1 4 c c1 7...
  • 一、问题:使用MySQL的的MAX函数是取得的值不是最大,如下所示 ,应该获取到的最大值为10,结果却为8,出错查询语句如下: 二、原因:因为字符串类型大小比较是先比较首字符,然后依次往后进行比较 三、解决...
  • mysqlMAX函数使用注意点

    千次阅读 2017-05-02 23:32:53
    Mysql中数字类型字段可直接使用MAX()函数, 儿对于其他类型的字段要使用它一下语句: MAX(CAST(name AS nusigned))
  • 补充知识:mysqlMAX()函数和count()函数的技巧使用 1.max()函数 在考虑提高数据库io的情况下,可以创建索引 ===>create index 索引名称 on 表名(列名); 2.count()函数 问题:count(*)与count(某列)
  • procedure analyse()函数MySQL内置的对MySQL字段值进行统计分析后给出建议的字段类型。 语法 procesure analyse(max_elements,max_memory) max_elements 指定每列非重复值的最大值,当超过这个值的时候,MySQL...
  • MySQLMAX函数与Group By一起使用的注意事项 mysql&gt; select * from test; +----+-------+------+-------+ | id | name | age | class | +----+-------+------+-------+ | 1 | qiu ...
  • 解决mysqlMax函数根据时间分组查询最新的一条记录的问题(亲测有效) 今天调整一个查询的sql 根据条件只查询时间最新一条的记录 想着直接用max函数直接就改了 简单的一批呀 没想到后来发现数据出了错误 直接上sql....
  • 使用的函数MAX()和MIN(),部分sql语句和结果显示为: 结果明显不对,而且通过自己验证,最高分为74.4 最低分为8.6 无论如何都不应该是图中所示的结果。 一开始怀疑MAX(),MIN()函数使用不当造成的。于是...
  • MySQL常用函数max()和length()使用

    千次阅读 2019-09-03 09:50:30
    MySQL max()函数用于找出指定记录集中字段值最大的记录: SELECT MAX(combine_time) from fault_time; 查询结果如下: ---------------------------------------------------------------------分割线------------...
  • mysql函数的min函数或者max函数在使用的时候,数据库字段的的类型应该是数值性,如果是字符串类型,会有转换成其他的执行,这样min函数或者max函数执行结果就是不正确的
  • 在维护代码时,发现使用MAX()函数,比较出来的结果不正确,查看后发现字段类型是varchar 2.问题解决: MAX()和MIN()函数比较数字类型时,比较的是值,取出最大值或最小值 使用MAX()查询一个字符串类型的字段时,那么...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 116,910
精华内容 46,764
关键字:

max函数执行过程mysql

mysql 订阅