MySQL实战

文章目录

  • 一.基础语法
    • 1.1 GROUP BY

一.基础语法

1.1 GROUP BY

在MySQL8.0版本中,默认开启了严格模式,可以通过以下语句开启:

SET sql_mode = 'ONLY_FULL_GROUP_BY';

严格模式的特殊之处:

  1. select后的字段除聚合字段外,必须出现在GROUP BY后;反过来,group by后的字段不一定出现在select后。
  2. 在GROUP BY严格模式下,查询结果中的每一行都必须是一个组的聚合结果,而不是单个行的值

起因:在工作中有这样一个场景,在表中每个cltNbr下可能存在多条数据

SELECT clt_nbr AS cltNbr
  , MIN(rcrd_id) AS rcrdId
FROM 
 ...
GROUP BY cltNbr
ORDER BY rcrc_id ASC

在上述sql语句中,因为GROUP BY在严格模式下,查询结果必须是一个组的聚合结果,所以按照rcrd_id进行排序,就不知道要取哪一个。将rcrd_id字段改为rcrdId即可。

你可能感兴趣的:(MySQL,mysql)