概述
MySQL分组查询是数据库操作中的一种常用操作,用于对数据进行分组统计。在MySQL中,分组查询主要通过GROUP BY子句实现,GROUP BY子句用于对查询结果进行分组,然后通过聚合函数对每个分组进行统计
。本文将介绍MySQL分组查询的基本语法和常用操作。
理解(先分组,再统计)
- 根据一个字段进行分组: 假设现在有一个用户表,表中有10条数据,我们根据性别把所有的数据进行分组,可以分成2组,每组5条数据。这个时候就可以以每个组为单位进行统计,比如统计男性用户的平均年龄,统计女性用户的平均年龄。
- 根据多个字段进行分组: 假如同时根据性别和学校进行分组,就可以这样分组:男生在清华大学的,男生在北大的;女生在清华大学的,女生在北大的;以此类推。
基本语法
SELECT
column1,
column2,
aggregate_function(column3)
FROM
table_name
GROUP BY
column1,
column2
HAVING
condition;
-- column1、column2为分组字段,aggregate_function为聚合函数,table_name为表名,condition为筛选条件。
-- GROUP BY子句用于对查询结果进行分组,HAVING子句用于筛选分组后的结果。
过滤分组(HAVING)
- HAVING 用于筛选分组后的结果,只有满足条件的分组才会被返回。HAVING支持所有WHERE的操作,比如
=
、>
、<
、>=
、<=
、<>
、BETWEEN
、LIKE
等。 - HAVING和WHERE的区别: WHERE过滤行,HAVING过滤分组。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至[email protected]。