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. Linux服务器端使用tcpdump抓redis报文

    yum update yum install tcpdump tcpdump host -i ens192 -w /tmp/redis-zsetcapture.cap 其中ens192是网卡名, /t ...

  2. Java泛型(10):泛型与异常

    由于擦除的原因,将泛型运用于异常是非常受限的.catch语句不能捕获泛型类型的异常,因为在编译期和运行期都必须知道异常的确切类型.但是,类型参数可能会在一个方法的throw子句中用到.这使得你可以编写 ...

  3. Golang gRPC微服务02: helloworld

    安装protobuf 在windows下,直接下载release版本https://github.com/protocolbuffers/protobuf/releases/tag/v3.9.0然后把 ...

  4. Python3 Selenium自动化web测试 ==> 第五节 WebDriver高级应用 -- 使用JavaScript操作页面元素

    学习目的: 中级水平技术提升 在WebDriver脚本代码中执行JS代码,可以解决某些 .click()方法无法生效等问题 正式步骤: Python3代码如下 # -*- coding:utf-8 - ...

  5. web代码审计题

    @题名:code i春秋https://www.ichunqiu.com/battalion wp:https://www.ichunqiu.com/writeup/detail/4139

  6. FTL-SLC&MTC&TLC

    1.博客 SLC.. http://diybbs.zol.com.cn/67/231_661182.html 2.FTL --作者在普及了一些FTL基本知识后,主要分析了在linux上实现的途径 ht ...

  7. 学习笔记:CentOS7学习之十四:linux文件系统

    目录 1. 机械硬盘结构 1.1 机械硬盘结构 1.2 簇和block 2.文件系统结构 2.1 文件名 2.2 inode的内容 2.3 inode的大小 2.4 目录文件 2.5 block块大小 ...

  8. *【Python】【demo实验27】【练习实例】【定义递归函数】

    原题: 原题解答: #!/usr/bin/python # encoding=utf-8 # -*- coding: UTF-8 -*- # 利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出 ...

  9. 【LOJ】#3014. 「JOI 2019 Final」独特的城市(长链剖分)

    LOJ#3014. 「JOI 2019 Final」独特的城市(长链剖分) 显然我们画一条直径,容易发现被统计的只可能是直径某个距离较远的端点到这个点的路径上的值 用一个栈统计可以被统计的点,然后我们 ...

  10. Centos删除多余的Linux内核

    删除开机多余kernel(centos) yum update 命令会大范围升级,有时候linux内核也会升级,升级后开机画面就会出现多个内核供你选择,所有强迫症的我需要删除旧的 ⒈查看正在使用的内核 ...