也談分析函式over

2021-05-01 20:27:52 字數 2307 閱讀 2844

as we know ,oracle從8.1.6開始提供分析函式,分析函式用於計算基於組的某種聚合值,它和聚合函式的不同之處是對於每個組返回多行,而聚合函式對於每個組只返回一行。快哭了。。。

來看看區別:

1.先建立示例表:

create

table

empas

select

*from

scott.emp;

alter

table

empaddconstraint

emp_pk

primary

key(empno);

表中資料:

empno

ename

job

mgr

hiredate

sal

comm

deptno

7369

smith

clerk

7902

1980-12-17

800.00

207499

allen

salesman

7698

1981-2-20

1600.00

300.00

307521

ward

salesman

7698

1981-2-22

1250.00

500.00

307566

jones

manager

7839

1981-4-2

2975.00

207654

martin

salesman

7698

1981-9-28

1250.00

1400.00

307698

blake

manager

7839

1981-5-1

2850.00

307782

clark

manager

7839

1981-6-9

2450.00

107788

scott

analyst

7566

1987-4-19

3000.00

207839

king

president

1981-11-17

5000.00

107844

turner

salesman

7698

1981-9-8

1500.00

0.00

307876

adams

clerk

7788

1987-5-23

1100.00

207900

james

clerk

7698

1981-12-3

950.00

307902

ford

analyst

7566

1981-12-3

3000.00

207934

miller

clerk

7782

1982-1-23

1300.00

10來看看每個部門的薪水和:

先來看看聚合函式: select t.empno,sum(t.sal) from emp t group by t.empno,t.sal

結果:empno

sum(t.sal)

7369

8007499

1600

7521

1250

7566

2975

7654

1250

7698

2850

7782

2450

7788

3000

7839

5000

7844

1500

7876

1100

7900

9507902

3000

7934

1300

oracle 分析函式OVER

分析函式用於計算基於組的某種聚合值,它和聚合函式的不同之處是 對於每個組返回多行,而聚合函式對於每個組只返回一行。over over order by.與over partition by.之間的區別 over order by.用在聚合函式 max sun 後面,可返回根據排序結果進行統計到當前行...

oracel 分析函式over 函式

表temp b的記錄 執行如下sql語句 剔除表temp a中city name相同的記錄 示例2 分組排序 成績表的所有記錄如下 執行如下sql語句 select student name,class,score,dense rank over partition by class order b...

Oracle學習 分析函式over

oracle的分析函式over create table test001 empno number 4 ename varchar2 50 sal number 8,4 insert into test001 values 3,james 1000 insert into test001 value...