已解决(SQL使用GROUP BY语句时报错)SQL_ERROR_INFO: ‘Invalid use of group function’
报错信息
我的代码:
SELECT name as '姓名',AVG(age) as '平均年龄' FROM `test1` WHERE AVG(age)>20 GROUP BY name;
报错信息:SQL_ERROR_INFO: 'Invalid use of group function
报错原因
报错内容翻译:
SQL\u ERROR\u INFO:“组函数的使用无效”
报错原因:where和having这两个过滤的子句区别没有搞清
SQL语句的写法顺序:
SELECT [DISTINCT|DISINCTROW|ALL] select_expression,… – 查询结果
[FROM table_references – 指定查询的表
[WHERE where_definition] – where子句,查询数据的过滤条件
[GROUP BY col_name,…] – 对[匹配where子句的]查询结果进行分组
[HAVING where_definition] – 对分组后的结果进行条件限制
[ORDER BY{
unsigned_integer | col_name | formula} [ASC | DESC],…] – 对查询结果进行排序
[LIMIT [offset,] rows] – 对查询的显示结果进行条数限制
[PROCEDURE procedure_name] --查询存储过程返回的结果集数据
解决方法
SQL语句正确写法:
SELECT name AS '姓名',AVG(age) as '平均年龄' FROM `test1` GROUP BY name HAVING AVG(age) > 20;