天天看點

oracle+over+partition+by,【Oracle】group by 和partition by的差別

總結:

group 單純分組

partition 也能分組,但還具備累計的功能

order by 排序,與計算函數聯用,需要累加計算

0、select * from test;     ---測試資料

1、select v1,v2,sum(v2) over(order by v2) as sum  from test;    --按照 v2排序,累計n+n-1+....+1

2、select v1,v2,sum(v2) over(partition by v1 order by v2) as sum  from test;   --先分組,組内在進行 1 中的操作

3、select v1,v2,sum(v2) over(partition by v1 order by v1) as sum  from test; ---穩定排序

4、select v1,v2,sum(v2) over(partition by v1) as sum  from test;  --相同key的進行回填處理

5、select distinct v1,sum_01                                        --取一條

from (

select v1,sum(v2) over(partition by v1) as sum_01

from test

) a;

6、當然也可以逆序累加,隻需order by desc 即可