<返回

MySQL分组查询

提醒:本文发布于 天前,内容可能因【技术时效性】过期 或【被重新修改】,请谨慎参考。

概述

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的操作,比如=><>=<=<>BETWEENLIKE等。
  • HAVING和WHERE的区别: WHERE过滤行,HAVING过滤分组。
TOC
  1. 1. 概述
  2. 2. 理解(先分组,再统计)
  3. 3. 基本语法
  4. 4. 过滤分组(HAVING)
本文章受版权法保护,如需转载或引用,请注明出处。