文档章节

SQL语句where, group by, having,order by语法

o
 osc_mervd488
发布于 2018/04/21 23:58
字数 538
阅读 11
收藏 0

行业解决方案、产品招募中!想赚钱就来传!>>>

问题描述:基于SC表和C表查询每门课程的平均分和最高分,要求输出课程编号、课程名、平均分和最高分,并按平均分总分排序。


C表包含字段Cno、Cname、Ccredit、Cteacher分别表示课程编号、课程名、学分和任课教师;SC表包含字段Sno、Cno和Score,分别表示学号、课程编号和成绩

C表


SC表


SELECT C.Cno,C. Cname,SUM(SC. Score),MAX(SC. Score) FROM C,SC WHERE C.Cno =SC.Cno GROUP BY C. Cname,C.CnoORDER BY C.Cno;

结果:


分析:

select 列a,聚合函数 from 表名 where 过滤条件 group by 列a having 过滤条件
group by 字句也和where条件语句结合在一起使用。当结合在一起时,where在前,group by 在后。即先对select xx from xx的记录集合用where进行筛选,然后再使用group by 对筛选后的结果进行分组 使用having字句对分组后的结果进行筛选
需要注意having和where的用法区别:
1.having只能用在group by之后,对分组后的结果进行筛选(即使用having的前提条件是分组)。
2.where肯定在group by 之前
3.where后的条件表达式里不允许使用聚合函数,而having可以。
四、当一个查询语句同时出现了where,group by,having,order by的时候,执行顺序和编写顺序是:
1.执行where xx对全表数据做筛选,返回第1个结果集。
2.针对第1个结果集使用group by分组,返回第2个结果集。
3.针对第2个结果集中的每1组数据执行select xx,有几组就执行几次,返回第3个结果集。
4.针对第3个结集执行having xx进行筛选,返回第4个结果集。
5.针对第4个结果集排序。

注意:

     使用group by的SQL语句中,select中返回的字段,必须满足以下两个条件之一:   

      1.包含在group by语句的后面,作为分组的依据;

      2.这些字段包含在聚合函数中


o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

在C#中调用基本构造函数 - Calling the base constructor in C#

问题: If I inherit from a base class and want to pass something from the constructor of the inherited class to the constructor of the base class, how do I do that? 如果我从基类......

富含淀粉
4分钟前
0
0
用Python构建个性化智能闹钟

作者|Kumar Shubham 编译|VK 来源|Towards Data Science 你可能之前有见过有人使用Python语言构建闹钟,帮助他唤醒或提醒他一个重要的会议。 这些都是很简单,没有任何智能,他们所做的只是播...

人工智能遇见磐创
13分钟前
12
0
前端学数据结构与算法(二):数组与栈

前言 数据结构与算法有相互依存的关系,如果将这个两个又进行划分,无疑数据结构又是这座大厦的基础。首先从线性数据结构开始,介绍大家耳熟能详的数据结构-数组。因为JavaScript已经为数组封...

飞跃疯人院
21分钟前
7
0
emsdk 开发环境搭建

https://emscripten.org/docs/getting_started/Tutorial.html 安装cmake sudo apt install cmake -ysudo apt install gcc g++ -ysudo apt-get install default-jre -y git clone......

阿豪boy
28分钟前
7
0
重写GetHashCode的最佳算法是什么? - What is the best algorithm for overriding GetHashCode?

问题: In .NET, the GetHashCode method is used in a lot of places throughout the .NET base class libraries. 在.NET中,整个.NET基类库的许多地方都使用GetHashCode方法 。 Implementi......

fyin1314
34分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部