oracle avg分析函数,分析函数之sum,avg
看看26樓的這句話:
看來oracle在提取數據庫的時候是按over(partition by ... order by ...)這個里邊的partition by 和 order by后邊的字段的一個個distinct值取出數據的。
仔細理解理解一下。
SQL> select * from t;
A? ?? ?? ? B? ?? ?? ? C? ?? ?? ?? ?? ?? ? D
---------- ---------- ---------- ----------
1? ?? ?? ? 111? ?? ???G? ?? ?? ?? ?? ?? ?87
1? ?? ?? ? 111? ?? ???G? ?? ?? ?? ?? ?? ?87
1? ?? ?? ? 222? ?? ???G? ?? ?? ?? ?? ?? ?85
1? ?? ?? ? 222? ?? ???G? ?? ?? ?? ?? ?? ?86
2? ?? ?? ? 111? ?? ???G? ?? ?? ?? ?? ?? ?80
2? ?? ?? ? 111? ?? ???G? ?? ?? ?? ?? ?? ?80
2? ?? ?? ? 222? ?? ???G? ?? ?? ?? ?? ?? ?81
2? ?? ?? ? 222? ?? ???G? ?? ?? ?? ?? ?? ?80
8 rows selected
只有partition by a,distinct a有2個值1和2:分2次提取數據
為1的提取一次,4條a值相同,4條平均86.25
為2的提取一次,4條a值相同,4條平均80.25
SQL> select a,b,c,avg(d) over(partition by a ),d from t;
A? ?? ?? ? B? ?? ?? ? C? ?? ?? ? AVG(D)OVER(PARTITIONBYA)? ?? ?? ? D
---------- ---------- ---------- ------------------------ ----------
1? ?? ?? ? 111? ?? ???G? ?? ?? ?? ?? ?? ?? ?? ?? ???86.25? ?? ?? ?87
1? ?? ?? ? 111? ?? ???G? ?? ?? ?? ?? ?? ?? ?? ?? ???86.25? ?? ?? ?87
1? ?? ?? ? 222? ?? ???G? ?? ?? ?? ?? ?? ?? ?? ?? ???86.25? ?? ?? ?85
1? ?? ?? ? 222? ?? ???G? ?? ?? ?? ?? ?? ?? ?? ?? ???86.25? ?? ?? ?86
2? ?? ?? ? 111? ?? ???G? ?? ?? ?? ?? ?? ?? ?? ?? ???80.25? ?? ?? ?80
2? ?? ?? ? 111? ?? ???G? ?? ?? ?? ?? ?? ?? ?? ?? ???80.25? ?? ?? ?80
2? ?? ?? ? 222? ?? ???G? ?? ?? ?? ?? ?? ?? ?? ?? ???80.25? ?? ?? ?81
2? ?? ?? ? 222? ?? ???G? ?? ?? ?? ?? ?? ?? ?? ?? ???80.25? ?? ?? ?80
8 rows selected
partition by a,order by b,distinct a,b有4個值:
1---111
1---222
2---111
2---222
分四次提取數據:
1---111:取出2條,a=1的2條取平均87
1---222:取出2條,a=1的4條取平均86.25
2---111:取出2條,a=2的2條取平均80
2---222:取出2條,a=2的4條取平均80.25
SQL> select a,b,c,avg(d) over(partition by a order by b ),d from t;
A? ?? ?? ? B? ?? ?? ? C? ?? ?? ? AVG(D)OVER(PARTITIONBYAORDERBY? ?? ?? ? D
---------- ---------- ---------- ------------------------------ ----------
1? ?? ?? ? 111? ?? ???G? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???87? ?? ?? ?87
1? ?? ?? ? 111? ?? ???G? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???87? ?? ?? ?87
1? ?? ?? ? 222? ?? ???G? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???86.25? ?? ?? ?85
1? ?? ?? ? 222? ?? ???G? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???86.25? ?? ?? ?86
2? ?? ?? ? 111? ?? ???G? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???80? ?? ?? ?80
2? ?? ?? ? 111? ?? ???G? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???80? ?? ?? ?80
2? ?? ?? ? 222? ?? ???G? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???80.25? ?? ?? ?81
2? ?? ?? ? 222? ?? ???G? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???80.25? ?? ?? ?80
8 rows selected
SQL>
總結
以上是生活随笔為你收集整理的oracle avg分析函数,分析函数之sum,avg的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php里面的耗时操作,PHP执行时间那点
- 下一篇: presto读取oracle,Prest