SQL语句复习【专题二】

单行函数(日期、数学、字符串、通用函数、转换函数)
多行函数。分组函数。多行数据计算一个结果。
一共5个。sum(),avg(),max(),min(),count()
分组函数   分类
只能处理数值型的数据  sum 、avg
max,min,count ,任何类型都可以处理。

--求所有的员工的最高工资,平均工资,工资总和,最小工资,员工的人数。
select max(sal) 最高工资 ,avg(sal) 平均工资 ,sum(sal) 工资总和 ,min(sal) 最小工资, count(*)

--统计部门编号是 10 的员工的总数
select count(*) from emp where deptno=10
select count(*) from emp where deptno=20
select count(*) from emp where deptno=30

分组查询--group by
--统计排除10部门,其他部门的总人数,工资的总和,工资的平均值,工资的最大值,工资的最小值,使用工资的总和排序 desc
select deptno,sum(sal),avg(sal),max(sal),min(sal),count(*)
from emp
where deptno<>10
group by deptno
order by sum(sal) desc
--使用别名排序
select deptno,sum(sal) 工资总和,avg(sal),max(sal),min(sal),count(*)
from emp
where deptno<>10
group by deptno
order by 工资总和 desc

sql 书写顺序有严格的要求,必须遵守【sql 执行的顺序:from--->where--->group by---select --->order by】
---统计每个部门的总人数,工资的总和,工资的平均值,工资的最大值,工资的最小值,使用工资的总和排序,只显示工资的平均值 >= 2000
select deptno, count(*),sum(sal),avg(sal),max(sal),min(sal)
from emp
where avg(sal) >= 2000---where 后面跟的行过滤条件,不能跟分组的函数,不能进行分组之后的条件的过滤。  不可以
group by deptno
order by sum(sal)
正确写法
select deptno, count(*),sum(sal),avg(sal),max(sal),min(sal)
from emp
--where avg(sal) >= 2000---where 后面跟的行过滤条件,不能跟分组的函数,不能进行分组之后的条件的过滤。
group by deptno
order by sum(sal)

having:是进行分组过滤的条件的关键字。后面可以跟 where 使用的任何的内容。
sql 注意书写顺序【sql 执行的顺序:from--->where--->group by--->having--->select --->order by】
--统计部门人数,平均工资,排除10部门,和平均工资> 1000的部门
select deptno, count(*), avg(sal)
from emp
where deptno<>10
group by deptno
having avg(sal) > 1000
--使用别名
select deptno as 部门编号 , count(*) 部门人数 , avg(sal) 平均工资
from emp
where deptno<>10
group by deptno
having avg(sal) > 1000---只能使用avg(sal) 不能使用别名。别名的生效是在select 执行之后才有效的。而having实在 select之前执行的。
order by 平均工资 desc--order by 最后排序,可以使用select 中的别名。

多字段分组
--平均工资大于1200的部门和工作的组合
select deptno, job,avg(sal)
from emp
group by deptno, job
having avg(sal)>1200

--统计部门人数小于4的部门的平均工资 和 人数
select deptno, count(*), avg(sal)
from emp
group by deptno
having count(*) < 4

--统计各部门最高工资,排除最高工资小于3000的部门
select deptno, max(sal)
from emp
group by deptno
having max(sal) >= 3000

SQL语句复习【专题二】的更多相关文章

  1. SQL语句复习【专题一】

    SQL语句复习[专题一] --创建用户 scott 并设置密码为 tiger create user scott identified by tiger --用户刚刚创建没有任何的权限,连登录的权限都 ...

  2. SQL语句复习【专题三】

    SQL语句复习[专题三] DML 数据操作语言[insert into update delete]创建表 简单的方式[使用查询的结果集来创建一张表]create table temp as sele ...

  3. SQL语句复习【专题四】

    SQL语句复习[专题四] 多表查询 sql 92多表查询 sql92.sql99 标准--查询所有员工的姓名,部门编号,部门名称select * from empselect * from dept- ...

  4. SQL语句复习【专题五】

    SQL语句复习[专题五] 单行子查询:只会得到一个结果的子查询[子查询的内容必须放在小括号中.在查询语句中的查询语句 ]--查询所有比 CLARK 员工 工资高的员工--1.先查询 CLARK 员工的 ...

  5. SQL语句复习【专题六】

    SQL语句复习[专题六] 用户 + 创建表  --创建一个新的用户,然后给新的用户创建一张表,然后给表中添加一些数据.查询表中的数据 --创建用户需要比较大的权限 DBA create user di ...

  6. SQL语句复习【专题七】

    SQL语句复习[专题七] 完整性约束分类1)域完整性约束(非空not null,检查check)2)实体完整性约束(唯一unique,主键primary key)3)参照完整性约束(外键foreign ...

  7. SQL语句复习【专题八】

    SQL语句复习[专题八] 序列 Sequence.数据库对象是 oracle 专有的.作用:可以将某一列的值使用序列,来实现自动增长的功能.访问序列的值.[序列有两个属性 nextval currva ...

  8. SQL语句复习【专题九】

    SQL语句复习[专题九] 视图:View视图的概念:视图是从若干基本表或其他视图构造出来的表.在创建一个视图时,只是存放的视图的定义,也即是动态检索数据的查询语句,而并不存放视图对应的数据在用户使用视 ...

  9. 常用sql语句总结(二)(更新数据,序列,创建数据表,约束,注释)

    常用sql语句总结(二)(更新数据,序列,创建数据表,约束,注释) 一. 增 INSERT INTO 数据表(字段,字段,-) VALUES(值,值-); INSERT INTO emp(empno, ...

随机推荐

  1. java.lang.RuntimeException: org.dom4j.DocumentException: 1 字节的 UTF-8 序列的字节 1 无效。

    向一个XML文件写入出现异常 解决办法:使用记事本打开该XML文件,另存为,编码选择UTF-8 java.lang.RuntimeException: org.dom4j.DocumentExcept ...

  2. Java日志体系(一)发展历程

    一.日志框架的分类 门面型日志框架: JCL: Apache基金会所属的项目,是一套Java日志接口,之前叫Jakarta Commons Logging,后更名为Commons Logging SL ...

  3. web安全checklist

    web安全漏洞场景分析 输入输出检验不充分 设计缺陷 环境缺陷

  4. CF792E Colored Balls【思维】

    题目传送门 考试的时候又想到了小凯的疑惑,真是中毒不浅... 设每一个数都可以被分成若干个$k$和$k+1$的和.数$x$能够被分成若干个$k$和$k+1$的和的充要条件是:$x%k<=floo ...

  5. 【并行计算-CUDA开发】CUDA ---- Warp解析

    Warp 逻辑上,所有thread是并行的,但是,从硬件的角度来说,实际上并不是所有的thread能够在同一时刻执行,接下来我们将解释有关warp的一些本质. Warps and Thread Blo ...

  6. python urllib2 实现大文件下载

    使用urllib2下载并分块copy: # from urllib2 import urlopen # Python 2 from urllib.request import urlopen # Py ...

  7. python常见队列queue分类

    import queue # 1.普通q# 2.先进后出q# 3.优先级q 普通Queue q=queue.Queue(3)q.put(1)q.put(2)q.put(3)print(q.get()) ...

  8. intellij idea for mac 2018 破解版

    下载地址:https://pan.baidu.com/s/1DNo3CvkI7EMy6Mt0hdzTpg 1.在本站下载好mac文件包,打开dmg镜像文件,将“IntelliJ IDEA”拖入到“Ap ...

  9. 无法执行vue初始化命令

    无法执行vue初始化命令:https://www.jianshu.com/p/9eb3cf854aa8 今天vue 初始化项目时提示错误 执行命令: npm install -g vue-cli 执行 ...

  10. ARST第二周打卡

    Algorithm : 做一个 leetcode 的算法题 题目:一个无序数组里有99个不重复正整数,范围从1到100,唯独缺少一个整数.如何找出这个缺失的整数? int FindOneMissNum ...