先放出4个练习题2333
这些问题中我们可以使用集函数也就是相关的统计类函数
导入:
- 如果我们想知道总用户数怎么办?
- 查询谁是数据表里的首富怎么办?
- 如果我们想知道用户的平均金额怎么办?
- 如果我们想知道所有用户的总金额怎么办?
统计类函数最常用的我们有5个:
1.查询各门课程的选课人数
/*查询各门课程的选课人数*/ select cno,count(*) from sc group by cno; select cno,count(sno) from sc group by cno; select cno,count(all cno)/*dbms默认情况下不去重复2333*/ from sc group by cno;
2.查询选修了2门课程以上的学生的学号
3.
4.
select sno,count(*) as 课程数 from sc where sno between '1' and '4' group by sno having count(*)>=2 order by count(*) desc; /*单表查询,以上*/
在这儿又有一个总结呐:
...
分组 group by
结果再过滤having
整体使用SQL,
我们现在将语句进行整合后,配合使用一次。整体的SQL语句配合使用的语法结构如下:
最终的语法总结如下:
5.
统计有学生选修的课程门数。
可能就是1个课程被选多次,所以我们要加一个去重关键字distinct
相关资料:
查询单个字段不重复记录 distinct
经过对比,distinct的作用很显然的看出来喽,2333!
6.
求选修1号课程的学生的平均年龄
这道题需要认认真真的细品一下和琢磨哦!我第一次做的时候忘记写这个条件了:
这就是选修所自然对应的等值连接,也就是一定程度下的自然连接!!!!!!!!!!
要是不加的话,就成为笛卡尔积了
7.留下一道思考题:
后续再来研究这道题,溜溜溜啦!!!!!!
来源:https://www.cnblogs.com/dragondragon/p/12461587.html