sql 查询总和_SQL之汇总分析

sql 查询总和_SQL之汇总分析_第1张图片

一、SQL聚合函数

  • AVG() - 返回集合的平均值。
  • COUNT() - 返回集合中的项目数。
  • MAX() - 返回集合中的最大值。
  • MIN() - 返回集合中的最小值
  • SUM() - 返回集合中所有或不同值的总和。

除COUNT()函数外,SQL聚合函数忽略null值。

这里在mayan:SQL初体验建立的数据库基础之上进行操作

ex:
1.查询课程编号为"0002"的总成绩

sql 查询总和_SQL之汇总分析_第2张图片

2.查询选课学生总数

sql 查询总和_SQL之汇总分析_第3张图片

二、分组

因为聚合函数对一组值进行操作,所以它通常与SELECT语句的GROUP BY子句一起使用。 GROUP BY子句将结果集划分为值分组,聚合函数为每个分组返回单个值。基本语句结构如下:

SELECT c1, aggregate_function(c2)
FROM table
WHERE ...
GROUP BY c1

sql 查询总和_SQL之汇总分析_第4张图片

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

sql 查询总和_SQL之汇总分析_第5张图片

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

sql 查询总和_SQL之汇总分析_第6张图片

3.查询男生女生人数

sql 查询总和_SQL之汇总分析_第7张图片

三、对分组结果指定条件

sql 查询总和_SQL之汇总分析_第8张图片

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

sql 查询总和_SQL之汇总分析_第9张图片

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

sql 查询总和_SQL之汇总分析_第10张图片

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

sql 查询总和_SQL之汇总分析_第11张图片

四、如何用SQL解决业务问题

  1. 翻译成大白话
  2. 写出分析思路
  3. 写出对应SQL语句

ex:如何计算平均成绩大于80的各科成绩
1.如何计算每门课程平均成绩,并且平均成绩大于等于80分
2.

sql 查询总和_SQL之汇总分析_第12张图片

3.

sql 查询总和_SQL之汇总分析_第13张图片

五、对查询结果排序

1.运用函数
降序(从大到小):desc
升序(从小到大):asc

2.示例

sql 查询总和_SQL之汇总分析_第14张图片

sql 查询总和_SQL之汇总分析_第15张图片

sql 查询总和_SQL之汇总分析_第16张图片

sql 查询总和_SQL之汇总分析_第17张图片

sql 查询总和_SQL之汇总分析_第18张图片

sql 查询总和_SQL之汇总分析_第19张图片

3.ex:
3.1.查询及格课程并按课程号从大到小排列

sql 查询总和_SQL之汇总分析_第20张图片

注意:Where 是一个约束声明,使用Where约束来自数据库的数据,Where是在结果返回之前起作用的,Where中不能使用聚合函数。
Having是一个过滤声明,是在查询返回结果集以后对查询结果进行的过滤操作,在Having中可以使用聚合函数。
在查询过程中聚合语句(sum,min,max,avg,count)要比having子句优先执行。而where子句在查询过程中执行优先级高于聚合语句。
HAVING子句可以让我们筛选成组后的各组数据,WHERE子句在聚合前先筛选记录.也就是说作用在GROUP BY 子句和HAVING子句前;而 HAVING子句在聚合后对组记录进行筛选。HAVING一般与GROUP BY连用。

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

sql 查询总和_SQL之汇总分析_第21张图片

五、如何看懂SQL报错信息

sql 查询总和_SQL之汇总分析_第22张图片

sql 查询总和_SQL之汇总分析_第23张图片

六、总结

sql 查询总和_SQL之汇总分析_第24张图片

你可能感兴趣的:(sql,查询总和,sql,聚合函数,sql,降序,sql按小时统计总数,sql聚合函数)