排序分组

1 排序

select 列名,列名,..,列名 from 表名 where 条件表达式 order by 排序列的列名 asc|desc;

asc|desc: asc表示升序,desc表示降序.

举例:查询员工信息,按照员工的工资升序排序

SELECT * FROM emp ORDER BY sal ASC;  ---如果是升序排序,asc可以省略
SELECT * FROM emp ORDER BY sal;

举例:查询员工信息,按照员工编号降序排序

SELECT * FROM emp ORDER BY empno DESC;

order by :后面可以跟多个排序列,跟多个排序列时,它的含义:按照第一排序列(紧跟前order by 关键字的列)排序,如果第一个排序字段的值相同时,它会按照第二个排序字段进行排序。

举例:查询员工信息,按照部门编号升序排序,如果部门编号相同时,按照工资的升序排序

SELECT * FROM emp ORDER BY deptno ASC,sal ASC;

举例:查询员工信息,按照部门编号降序排序,如果部门编号相同,按照员工编号升序排序

SELECT * FROM emp ORDER BY deptno DESC,empno;

举例:查询员工的编号、姓名、工作、工资、部门编号,按照部门编号升序排序,如果部门相同时,按照工资降序排序

SELECT empno,ename,job,sal,deptno FROM emp ORDER BY deptno,sal DESC;

注意:order by 后面除了可以跟表中的列名外,还可以跟select 和from之间查询结果的序号

SELECT empno,ename,job,sal,deptno FROM emp ORDER BY 5,4 DESC;

SQL语句执行顺序

FROM
WHERE
GROUP BY
HAVING
SELECT
ORDER BY

2 聚合函数

聚合函数:对一组值执行计算,并返回单个值。

count(列名|*|常数):它求记录数(数据条数)

max(列名):取最大值

min(列名):取最小值

avg(列名):取平均值

sum(列名):求和

举例:查询员工表中的员工人数

SELECT COUNT(empno) FROM emp;
SELECT COUNT(*) FROM emp;
SELECT COUNT(1) FROM emp;

count(主键列或索引列)
count(*)
count(常数)
count(普通列)
它们执行效率从上到下,依次降低。
null值不会参与 count计数。

举例:查询emp表中的部门数

select count(deptno) from emp;

举例:distinct:去重关键字,跟在列的最前面

select distinct deptno from emp;

select count(distinct deptno) from emp;

select empno,distinct deptno from emp;  --这个sql语句是错误的

select distinct empno,deptno from emp;

注意:distinct后面跟多个列时,判断重复数据,所有列的值完全相同时,它才会认为是重复数据

举例:查询工资总和

select sum(sal) from emp;

举例:查询员工的平均工资

select avg(sal) from emp;

举例:查询10号部门的最高工资

select max(sal) from emp where deptno=10;

举例:查询最低工资

select min(sal) from emp;

3 分组

select 列名,列名,...,列名 from 表名

where 条件

group by 分组列

order by 排序列 asc|desc

group by:分组的关键字,后面跟分组列名,可以是一个分组列,也可以是多个列

举例:查询各个部门的部门编号和部门的平均工资

select deptno,avg(sal) from emp group by deptno;

举例:查询各个部门的员工人数

select deptno,count(empno) from emp group by deptno;

select job,deptno,count(*) from emp group by job,deptno;
注意:group by 后面跟多个列时,只有当多个列的值同时相等时,它才会分为同一个组;

4 HAVING

select col_name,col_name,...,col_name

from 表名

where 条件

group by 分组列

having 条件

order by 排序列

having:它是对分组后的数据进行筛选,条件表达式中可以使用聚合函数

举例:查询各个部门的部门编号和部门的平均工资

select deptno,avg(sal) from emp group by deptno;

举例:求平均工资大于2000的部门编号和平均工资

select deptno,avg(sal) from emp group by deptno having avg(sal)>2000;

where和having的异同

where:条件,where后面跟的条件比having后的条件先执行,条件中不允许使用聚合函数。

having:条件中可以使用聚合函数,一般having和group by联用。

【Oracle 数据库】奶妈式教程day03 排序查询相关推荐

  1. 【Oracle 数据库】奶妈式教程 day09 子查询

    子查询 子查询指一个查询语句嵌套在另一个查询语句内部的查询 1.from后面的子查询 举例:查询员工的姓名和他上级的姓名 SELECT E.*, E2.EMPNO, E2.ENAME MNAME, E ...

  2. mysql数据库项目式教程答案_MySQL数据库项目式教程(高职高专国家示范性院校十三五规划教材)...

    导语 内容提要 郭水泉.关丽梅.王世刚主编的<MySQL数据库项目式教程(高职高专国家示范性院校十三五规划教材)>详细介绍了如何安装.管理.备份.维护和优化一个MySQL系统.全书分为八个 ...

  3. oracle数据库的基本教程 pdf,Oracle数据库技术基础教程 PDF 下载

    相关截图: 资料简介: 本书主要介绍Oracle数据库的基本概念.知识和技术,注重培养Oracle数据库技术的基本操作技能.本书内容体系完整,覆盖了Oracle数据库技术的主要组成部分,设置有Orac ...

  4. 【Oracle 数据库】奶妈式教程day15 DDL、DML、索引、视图、序列、死锁这一篇就够了

    表操作 创建表 -- 创建新表 create table 表名(字段名 类型(长度),...其他字段... );-- 数据类型VARCHAR2(size) 可变长度的字符串,最大长度为size个字节: ...

  5. Oracle数据库之安装教程

    一.从官网下载oracle数据库或者我的博客 官网地址:Oracle数据库下载地址 博客地址:博客下载地址 二.安装数据库 注意: 10g的数据库只能在xp操作系统中才有效. 建议安装在虚拟机上,这样 ...

  6. Oracle数据库初学者入门教程

    Oracle数据库是相对于其他数据库来说比较难的一个.Oracle Database,又名Oracle RDBMS,简称Oracle.是甲骨文公司推出的一款关系数据库管理系统.Oracle数据库系统是 ...

  7. oracle数据库12cocp培训教程,OCA/OCP认证考试指南全册(第3版) Oracle Database 12c 中文pdf扫描版[164MB]...

    完备的OCA(1Z0-061.1Z0-062)和OCP(1Z0-063)考试指南<OCA/OCP认证考试指南全册(第3版)>是为OCA和OCP考试准备的指南.<OCAOCP认证考试指 ...

  8. Oracle数据库的基本使用和高级查询

    1.Oracle体系结构 本次使用的是Oracle18c数据库版本 java学习交流Q群:1004577069 1>数据库Oracle数据库时数据的物理存储,这就包括(数据库文件ORA或者DBF ...

  9. oracle数据库12cocp培训教程,ORACLE OCP认证 12C课程大纲

    一.SQL Workshop I(SQL语言) * SQL简介* SELECT 查询语句* 限制和排序数据* 单行函数及自定义输出格式 * 转换函数与条件表达式 * 分组函数以及聚合操作 * 多表查询 ...

最新文章

  1. MapReduce编程系列 — 2:计算平均分
  2. LNK1181 无法打开输入文件“myelin64_1.lib“
  3. html解析的简单方式,HTML解析看我就够了,不依赖任何第三方,两个方法搞定
  4. delphi 窗体的释放
  5. LeetCode 1048. 最长字符串链(哈希+DP)
  6. mongod启动问题
  7. 步步惊芯 软核处理器的内部设计分析 pdf_【深度分析】互联网巨头造“芯”现状...
  8. win11没有uefi如何安装 windows11跳过uefi模式的安装方法
  9. IO库----IO类,文件输入输出,string流
  10. 从 0 基础到 10w 册数据分析书籍的畅销书作家
  11. ListView组件的应用
  12. 【Uplift】评估方法篇
  13. 【Python基础知识整理】
  14. Opencv中的DPM应用
  15. JSP作业提交管理系统(JSP作业管理系统)JSP学生作业管理JSP教师作业批改业提交管理系统
  16. 一年省一,两年国集,高二斩获世界金牌,他有哪些经验值得借鉴?
  17. 19、android面试题整理(自己给自己充充电吧)
  18. android获取应用权限管理,如何在android中获取应用程序权限设置?
  19. .msg转换成html,msg文件怎么打开
  20. O2O优惠券使用数据分析

热门文章

  1. C语言—一道面试题(品茗股份)
  2. Unity进行桌面截图并上传到服务器记录
  3. 英语学习参考十五大网站
  4. Vue项目的真机测试
  5. IntelliJ IDEA 学习笔记 - Default Settings
  6. CentOS 救援模式 (rescue installed system)修复损坏系统
  7. IPv6 内网穿透(二)
  8. 52图初探Linux通用知识
  9. 山东福祉展/2023济南康复辅具展/中国残疾人用品展览会
  10. 以太坊开发入门--相关知识点说明