Oracle的单行函数,聚合函数和分析函数

本文深入讲解了SQL中的三种主要函数类型:单行函数、聚合函数和分析函数。单行函数为查询结果集的每一行返回一个值;聚合函数根据分组返回一个值,常用于求和、平均等操作;分析函数则根据每个partition返回一个聚合值,适用于更复杂的数据分析场景。

数据源如图:
在这里插入图片描述

Single-Row Functions 单行函数

单行函数会给查询到的结果集的每行返回一个值。
例如 nvl():

select a.*,nvl(comm,0) newcomm from EMP a

结果如下:
在这里插入图片描述
可见上图,单行函数针对结果集的每一行都执行了一次并返回了一个值。

Aggregate Functions 聚合函数

聚合函数根据每个group返回一个值。
例如SUM():

select a.deptno,sum(a.sal) sumsal from EMP a group by a.deptno

结果如下:
在这里插入图片描述
我们先对deptno进行group by分组,分成了三组分别是10,20,30,然后针对每个组进行一次sum计算并返回值。
注:如果不进行group by,直接进行sum,其实默认查询到的整个表就是一个group,如:

select sum(a.sal) sumsal from EMP a 

在这里插入图片描述

Analytic Functions 分析函数

分析函数根据每个partition返回一个聚合值。与聚合函数不同在它针对每个partition返回的数据是多行的。分析函数会有一个窗口函数OVER(),其中指定对哪些列进行计算。
例如SUM() OVER():

select sum(a.sal) over(partition by a.deptno) sumsal from EMP a

结果如下:
在这里插入图片描述
会发现计算出了每个deptno组的sal之和。
注:如果不进行窗口函数中不进行partition by,默认查询到的整个结果集就是一个partition,如:

select sum(a.sal) over() sumsal from EMP a

在这里插入图片描述
在SQL中,进行分组后,列必须是分组字段和聚合函数组成,如果使用分析函数需要保证分析的函数的参数是分组字段。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值