mysql5.7 group by语法 1055

先来看如下语句,查询默认存在的引擎表

之前使用的MySQL版本为5.7以下,根据support进行分组执行语句如下

添加跟分组support无关的字段engine

没有任何问题

现在使用的版本是5.7

之后根据support进行分组之后

1055 - Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘information_schema.ENGINES.ENGINE‘ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

意思是

SELECT list不在GROUP BY子句中,并且包含非聚合列‘information_schema. engine。在功能上不依赖于GROUP BY子句中的列;这与sql_mode=only_full_group_by不兼容

也就是select展示的列必须跟group by相关

这就跟oracle的group by语法一致了,不得不说,更合理些,当然了,一些查看语句应该就会复杂些

查看系统变量sql.mode

ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

修改方式,window编辑my.ini,Linux编辑my.cnf,将[mysqld]中的sql_mode的值删除ONLY_FULL_GROUP_BY,重启解决!

原文地址:https://www.cnblogs.com/chywx/p/11115727.html

时间: 2024-08-30 17:45:24

mysql5.7 group by语法 1055的相关文章

mysql-5.7.9 shutdown 语法详解

mysql-5.7.9 终于提供shutdown 语法啦: 之前如果想关闭一个mysql数据库可以通过kill 命令.mysqladmin shutdown .service mysqld stop 等这样的方式. 然而在mysql-5.7.9之后mysql终于提供了SQL接口的shutdown语法啦! SQL接口下的shutdown语法: 语法 shutdown ; -- 这个shutdown要执行成功要有shutdown权限才行. shutdown的一个例子: [[email protect

MySQL GROUP BY 分组语句:语法及案例剖析、使用 WITH ROLLUP

MySQL GROUP BY 语句 GROUP BY 语句根据一个或多个列对结果集进行分组. 在分组的列上我们可以使用 COUNT, SUM, AVG,等函数. GROUP BY 语法 SELECT column_name, function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name; 实例演示 本章节实例使用到了以下表结构及数据,使用前我们可以先将以下数据导入数据库中.

32.GROUP BY

合计函数 (比如 SUM) 常常需要添加 GROUP BY 语句. GROUP BY 语句 GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组. SQL GROUP BY 语法 SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name SQL GROUP BY 实例 我们拥有下面这个 "Or

SQL GROUP BY 语句

合计函数 (比如 SUM) 常常需要添加 GROUP BY 语句. GROUP BY 语句 GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组. SQL GROUP BY 语法 SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name SQL GROUP BY 实例 我们拥有下面这个 "Or

转:mysql group by

group by 用法解析 group by语法可以根据给定数据列的每个成员对查询结果进行分组统计,最终得到一个分组汇总表. SELECT子句中的列名必须为分组列或列函数.列函数对于GROUP BY子句定义的每个组各返回一个结果. 某个员工信息表结构和数据如下:   id  name  dept  salary  edlevel  hiredate        1 张三 开发部 2000 3 2009-10-11       2 李四 开发部 2500 3 2009-10-01       3

group by的使用

group  by的使用 环境:win8.1  mysql5.7 "group  by"就是根据"by"指定的规则对数据进行分组,所谓的分组就是将一个"数据集"划分成若干个"小区域",然后针对若干个"小区域"进行数据处理. 原始表: 简单的group  by 示例1 select  *  from t_student  group  by  stu_subject; 结果 可以看出,单独地使用group 

mysql group by 用法解析

group by语法可以根据给定数据列的每个成员对查询结果进行分组统计,最终得到一个分组汇总表.SELECT子句中的列名必须为分组列或列函数.列函数对于GROUP BY子句定义的每个组各返回一个结果.某个员工信息表结构和数据如下:  id  name  dept  salary  edlevel  hiredate       1 张三 开发部 2000 3 2009-10-11      2 李四 开发部 2500 3 2009-10-01      3 王五 设计部 2600 5 2010-

group by 用法解析

group by语法可以根据给定数据列的每个成员对查询结果进行分组统计,最终得到一个分组汇总表. SELECT子句中的列名必须为分组列或列函数.列函数对于GROUP BY子句定义的每个组各返回一个结果. 某个员工信息表结构和数据如下:   id  name  dept  salary  edlevel  hiredate        1 张三 开发部 2000 3 2009-10-11       2 李四 开发部 2500 3 2009-10-01       3 王五 设计部 2600 5

mysql group by 用法解析(详细)

在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供 有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值.其原因是 distinct只能返回它的目标字段,而无法返回其它字段,这个问题让我困扰了很久,用distinct不能解决的话,我只有用二重循环查询来解决,而 这样对于一个数据量非常大的站来说,无疑是会直接影响到效率的.所以我花了很多时间来研究这个问题,网上也查不到解决方案 下面先来看看例子: