分组

使用GROUP BY 子句数据分组

使用HAVING 子句过滤分组结果集

分组函数作用于一组数据,并对一组数据返回一个值。如:AVG、COUNT、MAX、MIN、SUM操作的是一组数据,返回一个结果。

 

分组函数我的理解是 对相同的一组数据 取 一个值,

 

分组中可以继续分组, 比如对小学进行分组,分组年级,得到(一)(二)(三)年级的分组,然后在对(一)年级的班级继续分组,(一年一)(一年二)(一年三),然后可以对(一年一)班的人数进行统计,最高分数,等等得到一个值,

在或者对(一年一)班的男女再次分组,这样就得到了 (一年一班男)(一年一班女)两组数据,对(一年一班男)男生个数统计,男生平均身高统计,或者最大年龄最小年龄等等

 

001  小明  男  7岁  1.5m  1年级  1班  99分

002  小红  女  6岁  1.3m  1年级  1班  80分 

003  小张  男  7岁  1.1m  2年级  2班  88分 

004  小文  男  6岁  1.1m  2年级  2班  77分

005  小花  女  7岁  1.3m  2年级  2班  0分  

 

select grade,class, MAX(math) from student group by grade,class  

select grade,class, sex,MAX(age) from student group by grade,class ,sex

 

 

注意: SELECT 列表中所有没有包含在组函数中的列,都必须在group by的后面出现。

 

使用 HAVING 过滤分组:

1. 行已经被分组。

2. 使用了组函数。

3. 满足HAVING 子句中条件的分组将被显示。

不能在 WHERE 子句中使用组函数(注意)。

可以在 HAVING 子句中使用组函数。

有事等会写

 

上一篇:SQL基础知识


下一篇:009、分组查询(group by)