ORACLE函数概述(转)

ORACLE函数概述(转)


转自: https://www.jianshu.com/p/b9d537e7dcd2

数据库中的函数封装了一些通用的功能,例如日期类型和字符串类型之间的转换,每个数据库系统都内置了一些函数,当然用户也可以自定义函数。

在Oracle数据库中,函数可总分为单行函数、分组函数「亦称聚合函数」、分析函数三类。

单行函数

单行函数分为五种类型:字符函数、数值函数、日期函数、转换函数、通用函数。比如:

--大小写控制函数

select lower('Hello World') 转小写, upper('Hello World') 转大写 from dual;

--initcap: 首字母大写

select initcap('hello world') 首字符大写 from dual;

--字符控制函数

-- concat: 字符连接函数, 等同于 ||

select concat('Hello',' World') from dual;

分组函数

分组函数「亦称聚合函数」能在select或select的having子句中使用,当用于select子串时常常都和GROUP BY一起使用。比如:

--分组数据:求各个部门的平均工资

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

--group by作用于多列: 按部门,不同的工种,统计平均工资

--group by作用于多列:先按照第一列分组;如果相同,再按照第二列分组

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

--:求部门的平均工资大于2000的部门

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

分析函数

分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计值,为我们分析数据提供了一种简单高效的处理方式。

在分析函数出现以前,我们必须使用自联查询,子查询或者内联视图,甚至复杂的存储过程实现的语句,现在只要一条简单的SQL语句就可以实现了,而且在执行效率方面也有相当大的提高。

分析函数和分组函数的不同

普通的分组函数用group by分组,每个分组返回一个统计值,而分析函数采用partition by分组,并且每组每行都可以返回一个统计值。

分析函数需要结合开窗函数over()使用,所以亦有人称呼分析函数为窗口函数。

分析函数的形式

常用的分析函数如下所列:

row_number() over(partition by ... order by ...)

rank() over(partition by ... order by ...)

dense_rank() over(partition by ... order by ...)

count() over(partition by ... order by ...)

max() over(partition by ... order by ...)

min() over(partition by ... order by ...)

sum() over(partition by ... order by ...)

avg() over(partition by ... order by ...)

first_value() over(partition by ... order by ...)

last_value() over(partition by ... order by ...)

lag() over(partition by ... order by ...)

lead() over(partition by ... order by ...)

猜你喜欢

转载自blog.csdn.net/JerryITGO/article/details/84401522
今日推荐