龙空技术网

MySql学习笔记09——分组查询

包家三少 279

前言:

如今朋友们对“mysql中分组查询的功能是什么”可能比较关怀,各位老铁们都想要分析一些“mysql中分组查询的功能是什么”的相关知识。那么小编也在网络上汇集了一些关于“mysql中分组查询的功能是什么””的相关内容,希望兄弟们能喜欢,大家快快来了解一下吧!

分组查询

语法:

select 分组函数,列(要求出现在group by的后面) from表

[where筛选条件]

group by分组的列表

[order by子句]

注意:

查询列表必须特殊,要求是分组函数和group by后出现的字段

1、分组查询中的筛选条件分为两类

数据源

位置

关键字

分组前筛选

原始表

group by子句的前面

where

分组后筛选

分组后的结果集

group by子句的后面

having

①分组函数做条件肯定是放在having子句中

②能用分组前筛选的,就优先考使用分组前筛选

2、group by子句支持单个字段分组,多个字段分组(多个字段之间用逗号隔开没有顺序要求),表达式或函数(用得较少)

3、也可以添加排序(排序放在整个分组查询的最后)

案例:

name

sex

age

subject

score

张三

15

语文

80

李四

15

语文

85

王二

16

语文

65

张三

15

英语

86

李四

15

英语

77

王二

16

英语

56

张三

15

数学

98

李四

15

数学

76

王二

16

数学

54

表名:student

分组查询简单应用

查询每个科目的最高分

select subject,max(score) from student

group by subject

添加分组前查询

查询语文的最高分

select subject,max(score) from student

where subject ='语文'

group by subject

添加分组后查询

查询英语成绩及格中的最低分

select subject,min(score) from student

where subject ='英语'

group by subject

having min(score)>=60

按多个字段分组

查询语文最高分的学生基本信息

select name,sex,age,subject,max(score) from student

where subject ='语文'

group by subject

添加排序

查询每个科目的平均分,并按升序排序

select subject , avg(score) from student

group by subject

order by avg(score)

标签: #mysql中分组查询的功能是什么