MySQL实战

发布时间:2023年12月28日

一.基础语法

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即可。

文章来源:https://blog.csdn.net/qq_43563660/article/details/135280062
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。