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. 阿里云Centos7挂载数据盘

    查看磁盘情况 fdisk -l fdisk /dev/vdb 根据提示,分别输入 n. p. . enter.enter.wq fdisk -l mkfs.ext3 /dev/vdb1 挂载磁盘,写入 ...

  2. python实现在目录中查找指定文件的方法

    python实现在目录中查找指定文件的方法 本文实例讲述了python实现在目录中查找指定文件的方法.分享给大家供大家参考.具体实现方法如下: 1. 模糊查找 代码如下: import os from ...

  3. Delphi编写的等长加密与解密

    最近在看一本关于网络游戏服务端开发的书,虽然该书是个空架子,里面没有多少实际的内容(此书评价不好),但其中关于等长加密与解密的代码还是有一定的借鉴作用的.他山之石,可以攻玉.因为书中是C++的代码,所 ...

  4. Canal——增量同步MySQL数据到ElasticSearch

    1.准备 1.1.组件 JDK:1.8版本及以上: ElasticSearch:6.x版本,目前貌似不支持7.x版本:       Kibana:6.x版本:     Canal.deployer:1 ...

  5. spring-kafka —— 生产者消费者重要配置

    一.生产者配置 # 以逗号分隔的主机:端口对列表,用于建立与Kafka群集的初始连接 spring.kafka.producer.bootstrap-servers=TopKafka1:9092,To ...

  6. postman生成格式化时间

    方法一: var moment = require('moment'); var data = moment().format(" YYYYMMDDHHmmss"); consol ...

  7. CentOS下Hive搭建

    目录 1. 前言 2. MySQL安装 2.1 更换yum下载源 2.2 开启MySQL远程登录 3. Hive安装 3.1 下载Hive 3.2 安装Hive和更改配置文件 4. MySQL驱动包的 ...

  8. Openstack架构及配置

    Openstack云平台架构 一个良好的架构设计和运维保障措施,能为OpenStack云平台的稳定健康运行,产生不可估量的积极影响.如果化繁为简,简单的来说,要部署一套生产环境级别的OpenStack ...

  9. 将其它部分jsp代码包含进一个jsp文件

    <jsp:include page="文件路径/文件名.jsp" /> 将其它部分jsp代码包含进来.意义:将公共的部分代码抽出来,省略过多复制粘贴:只要改一个地方就O ...

  10. Vuecli 3.0 项目自定义添加静态目录,支持在index.html引入

    参考链接:https://blog.csdn.net/qq_15253407/article/details/89491255