oracle什么是分析函数,ORACLE常见分析函数有哪几类呢?

而ORACLE的常见分析函数有三类:

1。 OVER函数

分析函数的语法为:

Java代码

FUNCTION_NAME(,。。。)

OVER

()

例:

sum(sal) over (partition by deptno order by ename) new_alias

sum就是函数名

(sal)是分析函数的参数,每个函数有0~3个参数,参数可以是表达式,例如:sum(sal+comm)

over 是一个关键字,用于标识分析函数,否则查询分析器不能区别sum()聚集函数和sum()分析函数

partition by deptno 是可选的分区子句,如果不存在任何分区子句,则全部的结果集可看作一

个单一的大区

order by ename 是可选的order by 子句,有些函数需要它,有些则不需要。

依靠已排序数据的那些函数,如:用于访问结果集中前一行和后一行的LAG和LEAD,必须使用,其它函数,如AVG,则不需要。在使用了任何排序的开窗函数时,该子句是强制性的,它指定了在计算分析函数时一组内的数据是如何排序的。

eg:按区域查找上一年度订单总额占区域订单总额20%以上的客户,来看看分析函数的应用。

【1】测试环境:

Java代码

SQL> desc orders_tmp;

Name

Null?

Type

----------------------- -------- ----------------

CUST_NBR

NOT NULL NUMBER

(5)

REGION_ID

NOT NULL NUMBER

(5)

SALESPERSON_ID

NOT NULL NUMBER

(5)

YEAR

NOT NULL NUMBER

(4)

MONTH

NOT NULL NUMBER

(2)

TOT_ORDERS

NOT NULL NUMBER

(7)

TOT_SALES

NOT NULL NUMBER(11,2)

【2】测试数据:

Java代码

SQL> select * from orders_tmp;

CUST_NBR

REGION_ID SALESPERSON_ID

YEAR

MONTH TOT_ORDERS

TOT_SALES

---------- ---------- -------------- ---------- ---------- ---------- ----------

11

7

11

2001

7

2

12204

4

5

4

2001

10

2

37802

7

6

7

2001

2

3

3750

10

6

8

2001

1

2

21691

10

6

7

2001

2

3

42624

15

7

12

2000

5

6

24

12

7

9

2000

6

2

50658

1

5

2

2000

3

2

44494

1

5

1

2000

9

2

74864

2

5

4

2000

3

2

35060

2

5

4

2000

4

4

6454

2

5

1

2000

10

4

35580

4

5

4

2000

12

2

39190

13 rows selected。

全部

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值