【MySQL】分组查询(GROUP BY)

【MySQL】分组查询(GROUP BY),第1张

MySQL中使用 GROUP BY数据进行分组,GROUP BY从字面意义上理解就是根据'BY'指定的规则对数据进行分组, 所谓分组就是将一个'数据集'划分成若干个'子区域',然后针对若干个'小区域'进行数据处理 。基本语法形式为:

字段值为进行分组时所依据的列名称, “HAVING <条件表达式>” 指定满足表达式限定条件的结果将被显示。

GROUP BY关键字通常和集合函数一起使用,例如:MAX()、MIN()、COUNT()、SUM()、AVG()。即把数据分为多个逻辑组,并对每个组进行集合计算。

WHERE 子句过滤行,在数据分组前过滤;HAVING 子句过滤分组,在数据分组后过滤。WHERE排除的行不包括在分组里,且HAVING支持所有WHERE *** 作符。

使用GROUP BY可以对多个字段进行分组,根据多字段的值来进行层次分组,分组从左到右。

注意事项:

应用group by子句,每个组会返回一条唯一的汇总信息,参与分组的字段越多,每个组的划分越细,自然得到的组数越多。

例如,学生表有450名学生,如果单独按"性别"分组那么最多就会只得到男生和女生两个组(2行记录),如果再加上"班级"来分组,那么得到的记录行肯定更多,因为每个班都有自己的男生和女生数量。

可以。

你可以测试啊

group

by

一般和

聚合函数

一起使用才有意义,比如

count

sum

avg等,使用group

by的两个要素:

(1)

出现在select后面的字段

要么是聚合函数中的,要么是group

by

中的.

(2)

要筛选结果

可以先使用where

再用group

by

或者先用group

by

再用having

下面看下

group

by多个条件的分析:

在SQL查询器输入以下语句

create

table

test

(

a

varchar(20),

b

varchar(20),

c

varchar(20)

)

insert

into

test

values(1,'a','甲')

insert

into

test

values(1,'a','甲')

insert

into

test

values(1,'a','甲')

insert

into

test

values(1,'a','甲')

insert

into

test

values(1,'a','乙')

insert

into

test

values(1,'b','乙')

insert

into

test

values(1,'b','乙')

insert

into

test

values(1,'b','乙')

按照

c

b

顺序分组

select

count(a),b,c

from

test

group

by

c,b


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5919166.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-08
下一篇 2023-03-08

发表评论

登录后才能评论

评论列表(0条)

保存