文档章节

跟小博老师一起学习数据库 ——GROUP BY

博为峰教研组
 博为峰教研组
发布于 2017/04/09 17:31
字数 425
阅读 3
收藏 0

当要根据某些条件对数据分组时,就要使用到GROUP BY语句。GROUP BY语句可结合聚合函数使用,分组条件可是一个也可以是多个。

语法

注意:

使用GROUP BY语句后,查询的只能是出现在GROUP BY子句中的列使用了聚合函数列。

我们还是使用EMP表来做些练习

 

1. 查询有个工种

 

2. 查询每个工种每月所需支付的基本工资

 

3. 查询每个部门平均工资

 

4. 查询每个部门中各个工种的最低工资

 

5. 查询每个工种的最高基本工资,并按基本工资从大到小排序

 

6. 查询除了20部门以外其它部分的平均工资

 

HAVING子

如要对分组后的结果过滤,就不能使用WHERE子句了,应该要使用HAVING增加过滤条件。

例有这样一个需求“查询平均工资大于3000的工种信息”,很多学员可能写成这样

 

以上的SQL语句是错误的,原因是聚合函数(AVG()函数)不能出现WHERE子句中。

我们应调整成以下语句

 

WHERE与HAVING的区别在于WHERE是先对数据过滤HAVING是以分组后的数据再过滤,在某可互

我们一起看个题:

查询除了CLERK,MANAGER工种以外的工种最高基本工资。

WHERE写

 

HAVING写

 

  以上两种写法都能达到预期目标,但查询过程完全不相同,小伙伴自己实际操作操作吧。

© 著作权归作者所有

共有 人打赏支持
博为峰教研组
粉丝 50
博文 1224
码字总数 479077
作品 0
黄浦
程序员
小博老师经验分享 ——如何选择一门开发语言

[引言] 很多希望进入软件开发行业的朋友,经常会问小博老师一个问题,到底选择哪门编程语言好呢?又或是在各大论坛搜索开发语言排名。确实,对于第一次学习软件开发的朋友,选择一定要谨慎,...

博为峰教研组
2016/12/12
2
0
小博老师解析Java核心技术 ——JSwing选择型控件

[引言] 我们在学习Java编程的时候,如果需要开发客户端窗体类型的程序,可以使用JDK中的awt和swing库。本文开始小博老师就继续为大家演示Java窗体编程中的各类控件,今天主要讲解的是各类选择...

博为峰教研组
2016/12/21
5
0
GROUP BY另类优化技巧

分享嘉宾:知数堂〖SQL开发优化班〗讲师郑松华,韩国Infobridge的SQL优化专家&7年SQL开发和调优经验&资深数据库工程师。 本次主题《GROUP BY另类优化技巧》,主要内容是从 GROUP BY、ORDER B...

iMySQL | 老叶茶馆
2017/04/15
0
0
小博老师IT从业心得 ——给年轻程序员的建议

[引言] 偶尔的,小博老师会被朋友问道:如何成为一名优秀的程序员,更或者,如何成为一名程序员。每次人们问起,小博老师都力图给出不同的答案。因此,我的答案是各种各样的。下面就是小博老...

博为峰教研组
2016/11/30
6
0
定了!2018法考报名条件已出!我已加入全国最大法考学习群!

法考报名条件刚出来,是不是吓坏了一群非法本的宝宝 专升本,大三,大四到底能不能考? 傻傻分不清楚~ 那就快先来看看小编费九牛二虎之力找来的报考条件和其他常见问题的汇总吧~ 问题一览 ...

李彬
02/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Sql语言与MySql数据库

1. 数据库简介 1. 数据库,就是存储数据的仓库,只能通过sql语言来访问,数据库也是一个文件系统。通常,MySQL、Oracle等数据库,也被称为关系型数据库,其保存的不仅仅只是数据,还包括数据...

江左煤郎
26分钟前
0
0
IDEA 取消自动import .*

打开设置 > Editor > Code Style > Java > Scheme Default > Imports ① 将 Class count to use import with "*" 改为 99 (导入同一个包的类超过这个数值自动变为 * ) ② 将 Names count ......

乔老哥
28分钟前
1
0
PostGIS学习笔记(开篇)

PostGIS事实上算是笔者开始写博客的第一篇内容。而事实上那篇博文的内容并不丰富,笔者对PostGIS的了解仍然不多,然而17年在OSGeo课程学习时对PostGIS又有了进一步了解,并逐步发现它的强大。...

胖胖雕
28分钟前
1
0
【Centos】在nginx服务器中配置php和mysql

接上一章《【Centos】利用Vultr服务器和namesilo布网》(https://my.oschina.net/u/3776619/blog/2051986),在Centos中配置好nginx,并在iptables中开启了80端口,和为了远程mysql操作方便开...

yongh701
52分钟前
3
0
flume -- fileChannel简要分析其过程

flume之event写入FileChannel doPut(event)-->获取共享锁后[log.lockShared();]-->FlumeEventPointer ptr = log.put(transactionID, event); 此处的log.put即将transactionID及event进行后续......

-九天-
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部