系列文章目录
MySQL学习使用[9天系列 学习笔记]
Day01了解和创建数据库
(附上链接Day01:
https://blog.csdn.net/besthtml/article/details/128055581?
Day02创建、查看和删除表
https://blog.csdn.net/besthtml/article/details/128066352?
Day03更新数据和简单查询
https://blog.csdn.net/besthtml/article/details/128069269?
Day04模糊查询、结果排序和限制输出行
https://blog.csdn.net/besthtml/article/details/128085013?
Day05统计函数和其他函数的使用
https://blog.csdn.net/besthtml/article/details/128086178?
Day06分组统计和限制分组输出
https://blog.csdn.net/besthtml/article/details/128092918
Day07嵌套查询和连接查询
https://blog.csdn.net/besthtml/article/details/128099111
Day08视图、索引、备份和恢复
https://blog.csdn.net/besthtml/article/details/128108602?
Day09事务
https://blog.csdn.net/besthtml/article/details/128115542?
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
通过Day01了解数据库的创建,Day02了解了创建、查看和删除表,Day03了解了更新数据和简单查询,Day04了解模糊查询、结果排序和限制输出行,Day05使用统计函数和其他函数,Day06我们需要掌握会在SQL数据查询语句中使用group by子句进行分组统计。会在SQL数据查询语句中综合运用分组、排序和统计函数。会在SQL数据查询语句中使用having子句对分组进行筛选,输出满足筛选条件的查询结果。会在SQL数据查询语句中综合运用where、分组、having、排序和统计函数。
Day01传送门https://blog.csdn.net/besthtml/article/details/128055581
Day02传送门https://blog.csdn.net/besthtml/article/details/128066352?
Day03传送门https://blog.csdn.net/besthtml/article/details/128069269?
Day04传送门https://blog.csdn.net/besthtml/article/details/128085013?
Day05传送门
https://blog.csdn.net/besthtml/article/details/128086178?
Day06分组统计和限制分组输出
提示:以下是本篇文章正文内容,下面案例可供参考
分组统计和限制分组输出
一、分组统计
1.group by子句
前面Day05的几个例题select子句只包含统计函数,我们接下来看看下面一个查询。
例 统计每个出版社图书的平均价格,输出出版社名称和相应的平均价格。
SELECT pubcomp, AVG(price) FROM book;
但是这个语句得出的结果错误
分析:前面的例题函数的作用对象都是中间结果集,而本例中函数的作用对象是各个图书的出版社数据行。函数的作用对象细化了,这时需要分组统计。
正确结果应为
SELECT pubcomp, AVG(price) FROM book GROUP BY pubcomp;
例 按读者编号统计各读者借阅未还的图书数量,结果按照读者编号的升序排列。
SELECT count(rid) as '借阅未还的图书数量' from borrow
where returndate is null
group by rid
order by rid asc;
例 查询各出版社现存图书的总量(计算现存数量的和)。
select pubcomp,sum(bcount) from book
group by pubcomp;
GROUP BY子句:
当需要输出的数据既包含函数还包含其他列名时,或者函数的作用对象细化时,需要用到分组统计
Select子句中没有包含在函数中的列名肯定是分组依据,也就是group by 子句中的列,也就是在一条select语句当中,如果有group by语句的话,select 后面只能跟参加分组的字段以及分组函数。
GROUP BY子句的作用对象是查询的中间结果表
分组方法:按指定的一列或多列值分组,值相等的为一组
二、限制分组输出
前面我们学的分组查询中,所有分组的统计结果都输出,还有一些情况只输出满足条件的分组。在这里就需要应用到having子句。
限定分组或统计函数的检索条件时,就用到having子句。
having子句的使用方法与where子句类似,都用于设置条件
但是HAVING子句只修饰group by子句,其中可以使用统计函数,而WHERE子句中不可以。
只有满足HAVING短语指定条件的组才输出
HAVING短语与WHERE子句的区别:作用对象不同
WHERE子句作用于基表或视图,从中选择满足条件的元组。
HAVING短语作用于组,从中选择满足条件的组
例 查询各出版社图书的总价格,显示总价格大于100出版社和总价格
select pubcomp,sum(price) from book
group by pubcomp
having sum(price)>100;
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容。进行一个小总结。
编写顺序为
select···
from···
where···
group by···
having···
order by···
执行顺序为
from
where
group by
having
select
order by
Day07开始学习嵌套查询和连接查询