
1. 汇总分析
汇总函数:
count 求某列行数
sum 对某列数据求和(只对数值类型的列计算)
avg 对某列数据求平均值(只对数值类型的列计算)
max/min 求某列数据的最大值/最小值
注意:语句中列名不能加单引号
例1:求所有成绩平均分

例2:求成绩中最高分数

例3:不同姓名学生人数

练习1:查询课程编号为"0002"的总成绩

练习2:查询选了课程的学生人数

2. 分组 (group by)

练习1:查询各科成绩最高和最低的分数

练习2:查询各门课程被选修的学生数

练习3:查询男生、女生人数

3. 对分组结果指定条件 (having)

练习1:查询平均成绩大于60分学生的学号和平均成绩

练习2:查询至少选修两门课程的学生学号与课程数

练习3:查询同名同姓学生名单并统计同名人数

注意点:同名同姓如何用SQL语句表达出来
4. 用SQL解决业务问题
练习:如何计算每门课程的平均成绩并且平均成绩大于等于80分

5. 对查询结果排序
1)order by(desc(降序):从大到小 asc(升序):从小到大)

2)limit 从查询结果中取出指定行

练习1:查询分数不低于80分的课程并按课程号从大到小排列

练习2:查询每门课程的平均成绩,结果按平均成绩升序排序,平均成绩相同时,按课程号降序排列

注意点:平均成绩相同时的条件能直接对课程号降序吗?
6. 如何看懂报错信息
常见错误:
1)在group by 中使用了select里的别名

2)在where中使用聚类函数

3)各字段下值得类型是否属于可计算
数字的类型可能为字符
注:除SQLZOO外,牛客网也有大量SQL题目。