Oracle学习笔记(三)——排序分组
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;select empno,sal,job,ename,deptno from emp order by 5,2 desc;
2、聚合函数
聚合函数:对一组值执行计算,并返回单个值
count(列名|*|常数):它求记录数(数据条数)
max(列名):取最大值
min(列名):取最小值
avg(列名):取平均值
sum(列名):求和--查询员工表中的员工人数
select count(empno) from emp;
select count(*) from emp;
select count(1) from emp;count(主键列或索引列)
count(*)
count(常数)
count(普通列)
它们执行效率从上到下,依次降低--查询emp表中的部门数
select count(deptno) from emp;
select 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|descgroup by:分组的关键字,后面跟分组列名,可以是一个分组列,也可以是多个列--查询各个部门的部门编号和部门的平均工资
select deptno,avg(sal) from emp group by deptno;select empno,min(sal),max(sal),avg(sal),sum(sal),count(*) from emp group by empno;--查询各个部门的员工人数
select deptno,count(empno) from emp group by deptno;select job,deptno,count(*) from emp group by job,deptno;
注意:group by 后面跟多个列时,只有当多个列的值同时相等时,它才会分为同一个组;
4、having
ol_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学习笔记(三)——排序分组相关推荐
- oracle:oracle学习笔记(三)
oracle:oracle基础知识(三):存储过程.函数笔记,赵强老师 对于视频中涉及java部分的章节省略: 文章目录 存储过程.存储函数 存储过程基本语法 存储函数 带in 和out 参数 存储过 ...
- oracle学习笔记三
函数 字符函数 字符串大小写转换 LOWER (strexp) 返回字符串,并将所有的字符小写 UPPER (strexp) 返回字符串,并将所有的字符大写 INITCAP( ...
- oracle是dbms还是dbs,Oracle学习笔记三——DBS
数据库系统 DBS 即Database System,中文意为"数据库系统",是指带有数据库并利用数据库技术进行数据管理的计算机系统. 什么是数据库系统? 数据库系统DBS(Dat ...
- oracle update单引号,Oracle学习笔记:update的字段中包括单引号
平时update的时候直接更改字段内的值,例如: update table_temp set name = 'Hider' where id = 100; 但更新后的值中包括单引号,则不能按以上方式进 ...
- Oracle学习笔记(七)——分组统计查询
Oracle学习笔记(七)--分组统计查询 基础统计函数的使用 分组统计操作的实现,结合多表查询使用分组统计 常用统计函数 COUNT(*|[DISTINCT]字段) MAX(字段,日期或数字) MI ...
- Hive学习笔记三之函数操作
文章目录 5 函数 5.1 系统内置函数 5.2 常用内置函数 5.2.1 空字段赋值 5.2.2 CASE WHEN THEN ELSE END(类似于java中的switch case) 5.2. ...
- Oracle学习笔记---(一)
Oracle学习笔记---(一) 一 1.Oracle简介 Oracle是以高级结构化查询语言(SQL)为基础的大型关系数据库:是一个对象关系数据库管理系统(ORDBMS).它提供了关系数据库 ...
- MySQL学习笔记(三)查询
写在前面:本篇为作者自学总结,学习内容为课堂所学和网络学习笔记汇总,对于内容引用部分在文中和文末注明. 文章仅供参考,如需深入了解,请查阅MySQL参考手册.附上下载链接: 链接:https://pa ...
- oracle:oracle学习笔记(四)循环、光标、异常、瀑布模型
oracle学习笔记:循环.光标.异常 文章目录 打印Hello World 定义基本变量 引用型变量(单行)` my_name emp.ename%type ` 记录型变量(多行) `emp_rec ...
- SurfaceFlinger学习笔记(三)之SurfaceFlinger进程
概述 本系列是基于android Q 即android10 SurfaceFlinger学习笔记(一)应用启动流程 SurfaceFlinger学习笔记(二)之Surface SurfaceFling ...
最新文章
- iPhone开发技巧之工具篇(4)--- 使用afconvert转换WAV文件
- java.util.NoSuchElementException: No value present
- 关于Spring的IOC和DI
- vc的UI编程PngTextButton控件的适用情况
- 六一儿童节特辑|哪部“奥特曼”才是90后的心中最爱??数据分析师来告诉你...
- windows8 开发教程 教你制作 多点触控Helper可将任意容器内任意对象进行多点缩放...
- cookie与Session的区别,以及jQuery怎样操作cookie和Session
- 26.逻辑卷管理器(Logical Volume Manager)
- 关于数据库、数据仓库、数据湖、数据中台概念和区别
- linux内核启动过程分析
- 博弈论--取石子游戏
- Yield Guild Games:播客专题
- 操作系统的完整代码——编写YCOS应用程序
- 儒略日转公历 以及 公历转儒略日(python版)
- 用C语言基础及数学公式来简单实现土味表白
- scrum立会报告+燃尽图(第二周第六次)
- Python-pptx ChartData
- Unit Test Harness(用具)应该具备什么功能?
- Python爬虫入门——爬取贴吧图片
- 2022年十大数据泄露事件
热门文章
- 资深老师讲解CAD中的旋转命令,值得一学!
- 【蚂蚁学Python】Windows系统安装Anaconda问题总结
- 计算机毕业设计ssm+vue基本微信小程序的客户资源管理系统
- 滴滴出行“盖亚计划”开放脱敏数据,举办首届信号灯挑战赛|CNCC 2017
- 能激发购买欲的颜色解说!服装实体店做直播必备!
- 解决C4D连接对象+删除不能用 灰色的点不了
- 手机端 html 语音输入,移动端HTML5页面开发备忘录
- linux ps命令 无效,linux 如何检测是否有ps指令
- 企业数智化的“七宗罪”
- 北大“一个人的毕业照”主人公,2010级古生物专业独苗,十年后搞起了AI