SQL常用汇总函数用法说明

1.汇总分析

汇总函数

(1)count(列名):求某列的行数,不包含空值。

(2)sum(列名):对某列数据进行求和,只能对数值类型的列计算。

(3)avg(列名):求某列数据的平均值,只能对数值类型的列的计算。

(4)max(列名):求某列数据的最大值。

(5)min(列名):求某列数据的最小值。

注意:

(1)如果计算全部的行数会包含空值null.

(2)如果汇总时不想计算重复值,在汇总函数前加distinct,先删除重复值后计算。

练习:

(1)查询课程编号为0002的总成绩

执行结果如下图所示:

(2)查询选了课程的学生人数

执行结果如下图所示:


2.分组

分析方法

  • 数据分组
  • 应用函数
  • 组合结果

加入分组后,SQL的执行顺序为:

1.from:从哪张表中查询数据

2.where:查询条件

3.group by :分组

4.select:查询结果

练习

1.查询各科成绩最高和最低的分

执行结果如下图所示:

2.查询每门课程被选修的学生数

执行结果如下图所示:

3.查询男生,女生人数

执行结果如下图所示:


3.对分组结果指定条件

加入了having子句,我们新的SQL执行顺序为:

1.from:从哪张表中查询数据

2.where:查询条件

3.group by :分组

4.having:对分组结果指定查询条件

5.select:查询结果

练习

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

执行结果如下图所示:

2.查询至少选修两门课程的学生学号

3.查询同名同姓学生名单并统计同名人数


4.用SQL解决业务问题

步骤:

1.翻译成大白话

2.写出分析思路

3.写出对应的SQL子句

练习

1.每门课程的平均成绩

分析思路

1.select 查询结果,每门课程号、平均成绩avg(成绩)

2.from 从哪张表查询数据,score表

3.where 查询条件,无

4.group by 分组,以每个课程号作为分组条件

5.having 对分组结果指定条件,平均成绩>=80

写出sql子句

select 课程号,avg(成绩)

from score

group by 课程号

having avg(成绩)>=80;

执行结果如下图所示:


5.对查询结果排序

order by 子句

(1)降序desc:从大到小

(2)升序asc:从小到大,默认排序

注意:

1.我们也可以指定多个排序列名如:order by <列名1>asc,<列名2>desc;

2.对于含有空值的列排序时,空值会在查询结果开头显示,方便查询表格中空值的情况

limit子句

作用:从查询结果中取出指定行

加入以上两种子句后,SQL执行顺序为:

1.from:从哪张表中查询数据

2.where:查询条件

3.group by :分组

4.having:对分组结果指定查询条件

5.select:查询结果

6.order by:对查询结果排序

7.limit:从查询结果中取出指定行

练习

1.查询不及格的课程并按照课程号从大到小排序

展开阅读全文

本文系作者在时代Java发表,未经许可,不得转载。

如有侵权,请联系nowjava@qq.com删除。

编辑于

关注时代Java

关注时代Java