oracle查询分组的组数,oracle 组函数、分组查询、子查询和RowNum

一、组函数

组函数,也叫聚合函数。用来对一组值进行运算,并返回单个值。

COUNT(*|列名) 统计行数

AVG(数值类型列名) 平均值

SUM(数值类型列名) 求和

MAX(列名)   最大值

MIN(列名)   最小值

组函数都会忽略null值

select count(*) from emp;

5e4a47b7bbe878dd9770d55116de5675.png

二、分组查询

-- group by 进行分组

-- 例,按部门进行分组,并统计部门的人数

select deptno,count(*) 部门人数

from emp

group by deptno

b422c8ee45e6d7e896c64adb1bbc2dc8.png

注意:使用group by 分组函数

1. 出现在 select 后的列,必须要进分组

cf7e4e75d6d20f1e514bb974a3c01de9.png

2. group by 字句的字段可以不出现在 select 列表之中

3.当不使用group  by时,即所有的查询结果作为一组

限定组的结果:使用 having 子句

where 和having都是用于条件过滤

where在分组函数之前,不可以使用组函数

having在分组函数之后,可以使用组函数

三、子查询

1. 查询ALLEN的工资

select sal from scott.emp where ename = 'ALLEN';

2. 查询比ALLEN工资高的员工

select * from scott.emp where sal > 1600;

3. 以上一句可以写成子查询

-- 子查询就是把多条语句写成一条,子查询执行的时候会先执行子查询再执行主查询

select * from scott.emp where sal >

(select sal from scott.emp where ename = 'ALLEN');

4. 多行比较运算符:

- in:与列表中的任一个值相等

- any:与子查询返回的每一个值比较,大于最小的,小于最大的

- all:与子查询返回的所有值比较,大于最大的值,小于最小的值

四、RowNum 和 Rowid

RowNum 和Rowid,只有Oracle数据库才有。

rownum 伪行

select rownum, deptno, dname, loc from scott.dept

where rownum = 1;--查到1条数据

注意:

rownum 是在得到结果集的时候产生的,用于标记结果集中结果顺序的一个字段,

这个字段被称为“伪数列”,也就是事实上不存在的一个数列。

它的特点是按“顺序标记”,而且是“逐次递加”的,

换句话说就是只有存在 rownum = 1 的记录,才可能存在rownum = 2的记录。

-- 查询emp中第5-10条记录

select tempid, empno, ename

from (select rownum as tempid,empno ,ename from scott.emp )  t

where t.tempid between 6 and 10;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值