亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > Oracle > 正文

Oracle分析函數學習筆記3

2024-08-29 13:49:44
字體:
來源:轉載
供稿:網友
環境:windows 2000 server + Oracle8.1.7 + sql*plus目的:以oracle自帶的scott模式為測試環境,主要通過試驗體會分析函數的用法。類似 sum(...) over ... 的使用
1.原表信息:SQL> break on deptno skip 1  -- 為效果更明顯,把不同部門的數據隔段顯示。
SQL> select deptno,ename,sal
  2  from emp
  3  order by deptno;    DEPTNO ENAME             SAL
---------- ---------- ----------
        10 CLARK            2450
           KING             5000
           MILLER           1300        20 SMITH             800
           ADAMS            1100
           FORD             3000
           SCOTT            3000
           JONES            2975        30 ALLEN            1600
           BLAKE            2850
           MARTIN           1250
           JAMES             950
           TURNER           1500
           WARD             1250
已選擇14行。 2.先來一個簡單的,注重over(...)條件的不同,
使用 sum(sal) over (order by ename)... 查詢員工的薪水“連續”求和,
注重over (order  by ename)假如沒有order by 子句,求和就不是“連續”的,
放在一起,體會一下不同之處:SQL> break on '' -- 取消數據分段顯示
SQL> select deptno,ename,sal,
  2  sum(sal) over (order by ename) 連續求和,
  3  sum(sal) over () 總和,                  -- 此處sum(sal) over () 等同于sum(sal)

  4  100*round(sal/sum(sal) over (),4) "份額(%)"
  5  from emp
  6  /    DEPTNO ENAME             SAL   連續求和       總和    份額(%)
---------- ---------- ---------- ---------- ---------- ----------
        20 ADAMS            1100       1100      29025       3.79
        30 ALLEN            1600       2700      29025       5.51
        30 BLAKE            2850       5550      29025       9.82
        10 CLARK            2450       8000      29025       8.44
        20 FORD             3000      11000      29025      10.34
        30 JAMES             950      11950      29025       3.27
        20 JONES            2975      14925      29025      10.25
        10 KING             5000      19925      29025      17.23
        30 MARTIN           1250      21175      29025       4.31
        10 MILLER           1300      22475      29025       4.48
        20 SCOTT            3000      25475      29025      10.34

        20 SMITH             800      26275      29025       2.76
        30 TURNER           1500      27775      29025       5.17
        30 WARD             1250      29025      29025       4.31已選擇14行。
3.使用子分區查出各部門薪水連續的總和。注重按部門分區。注重over(...)條件的不同,
sum(sal) over (partition by deptno order by ename) 按部門“連續”求總和
sum(sal) over (partition by deptno) 按部門求總和
sum(sal) over (order by deptno,ename) 不按部門“連續”求總和
sum(sal) over () 不按部門,求所有員工總和,效果等同于sum(sal)。SQL> break on deptno skip 1  -- 為效果更明顯,把不同部門的數據隔段顯示。
SQL> select deptno,ename,sal,
  2  sum(sal) over (partition by deptno order by ename) 部門連續求和,--各部門的薪水"連續"求和
  3  sum(sal) over (partition by deptno) 部門總和,  -- 部門統計的總和,同一部門總和不變
  4  100*round(sal/sum(sal) over (partition by deptno),4) "部門份額(%)",
  5  sum(sal) over (order by deptno,ename) 連續求和, --所有部門的薪水"連續"求和
  6  sum(sal) over () 總和,  -- 此處sum(sal) over () 等同于sum(sal),所有員工的薪水總和
  7  100*round(sal/sum(sal) over (),4) "總份額(%)"
  8  from emp
  9  /DEPTNO ENAME    SAL 部門連續求和   部門總和 部門份額(%)   連續求和   總和  總份額(%)
------ ------ ----- ------------ ---------- ----------- ---------- ------ ----------
    10 CLARK   2450         2450       8750          28       2450  29025       8.44
       KING    5000         7450       8750       57.14       7450  29025      17.23
       MILLER  1300         8750       8750       14.86       8750  29025       4.48    20 ADAMS   1100         1100      10875       10.11       9850  29025       3.79

       FORD    3000         4100      10875       27.59      12850  29025      10.34
       JONES   2975         7075      10875       27.36      15825  29025      10.25
       SCOTT   3000        10075      10875       27.59      18825  29025      10.34
       SMITH    800        10875      10875        7.36      19625  29025       2.76    30 ALLEN   1600         1600       9400       17.02      21225  29025       5.51
       BLAKE   2850         4450       9400       30.32      24075  29025       9.82
       JAMES    950         5400       9400       10.11      25025  29025       3.27
       MARTIN  1250         6650       9400        13.3      26275  29025       4.31
       TURNER  1500         8150       9400       15.96      27775  29025       5.17
       WARD    1250         9400       9400        13.3      29025  29025       4.31
已選擇14行。 4.來一個綜合的例子,求和規則有按部門分區的,有不分區的例子
SQL> select deptno,ename,sal,sum(sal) over (partition by deptno order by sal) dept_sum,

  2  sum(sal) over (order by deptno,sal) sum
  3  from emp;    DEPTNO ENAME             SAL   DEPT_SUM        SUM
---------- ---------- ---------- ---------- ----------
        10 MILLER           1300       1300       1300
           CLARK            2450       3750       3750
           KING             5000       8750       8750        20 SMITH             800        800       9550
           ADAMS            1100       1900      10650
           JONES            2975       4875      13625
           SCOTT            3000      10875      19625
           FORD             3000      10875      19625        30 JAMES             950        950      20575
           WARD             1250       3450      23075
           MARTIN           1250       3450      23075
           TURNER           1500       4950      24575
           ALLEN            1600       6550      26175

           BLAKE            2850       9400      29025
已選擇14行。 5.來一個逆序的,即部門從大到小排列,部門里各員工的薪水從高到低排列,累計和的規則不變。SQL> select deptno,ename,sal,
  2  sum(sal) over (partition by deptno order by deptno desc,sal desc) dept_sum,
  3  sum(sal) over (order by deptno desc,sal desc) sum
  4  from emp;    DEPTNO ENAME             SAL   DEPT_SUM        SUM
---------- ---------- ---------- ---------- ----------
        30 BLAKE            2850       2850       2850
           ALLEN            1600       4450       4450
           TURNER           1500       5950       5950
           WARD             1250       8450       8450
           MARTIN           1250       8450       8450
           JAMES             950       9400       9400        20 SCOTT            3000       6000      15400
           FORD             3000       6000      15400
           JONES            2975       8975      18375
           ADAMS            1100      10075      19475
           SMITH             800      10875      20275        10 KING             5000       5000      25275

           CLARK            2450       7450      27725
           MILLER           1300       8750      29025
已選擇14行。 6.體會:在"... from emp;"后面不要加order  by 子句,使用的分析函數的(partition by deptno order by sal)
里已經有排序的語句了,假如再在句尾添加排序子句,一致倒罷了,不一致,結果就令人費勁了。如:SQL> select deptno,ename,sal,sum(sal) over (partition by deptno order by sal) dept_sum,
  2  sum(sal) over (order by deptno,sal) sum
  3  from emp
  4  order by deptno desc;    DEPTNO ENAME             SAL   DEPT_SUM        SUM
---------- ---------- ---------- ---------- ----------
        30 JAMES             950        950      20575
           WARD             1250       3450      23075
           MARTIN           1250       3450      23075
           TURNER           1500       4950      24575
           ALLEN            1600       6550      26175
           BLAKE            2850       9400      29025        20 SMITH             800        800       9550
           ADAMS            1100       1900      10650
           JONES            2975       4875      13625

           SCOTT            3000      10875      19625
           FORD             3000      10875      19625        10 MILLER           1300       1300       1300
           CLARK            2450       3750       3750
           KING             5000       8750       8750
已選擇14行。


上一篇:Oracle 學習過程中的筆記以及幾個問題

下一篇:小議在Oracle中索引的使用

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲视屏在线播放| 亚洲午夜激情免费视频| 国产欧亚日韩视频| 亚洲一区中文字幕在线观看| 久久国产精品久久久久久| 亚洲一品av免费观看| 91在线观看免费高清完整版在线观看| 91精品国产高清久久久久久91| 91精品国产成人www| 国产精品丝袜视频| 欧美疯狂性受xxxxx另类| 久久网福利资源网站| 欧美精品情趣视频| 91亚洲精品一区二区| 久久免费成人精品视频| 国模吧一区二区| 超薄丝袜一区二区| 欧美日韩国产一区中文午夜| 日韩在线精品一区| 一区二区亚洲欧洲国产日韩| 日韩成人av在线| 国产成人精品视频在线观看| 国产成人黄色av| 欧美性色视频在线| 精品视频久久久| 日韩视频在线免费| 亚洲国产精品小视频| 亚洲欧洲自拍偷拍| 精品国产欧美一区二区五十路| 国产精品wwww| 91精品在线观看视频| 91嫩草在线视频| 久久久免费观看视频| 中文欧美日本在线资源| 国产精品视频久| 日韩国产高清视频在线| 日韩精品免费综合视频在线播放| 欧美精品在线极品| 国产视频精品一区二区三区| 日韩精品免费综合视频在线播放| 日韩免费在线电影| 国产精品h在线观看| 欧美激情国产日韩精品一区18| 成人av资源在线播放| 欧美性做爰毛片| 欧美电影电视剧在线观看| 日韩电影大全免费观看2023年上| 亚洲自拍在线观看| 日本韩国欧美精品大片卡二| 福利精品视频在线| 中文字幕亚洲二区| 国产精品www| 欧美日韩国产91| 亚洲精品久久久久久久久久久久久| 国产999精品久久久影片官网| 精品国产欧美一区二区三区成人| 日韩中文视频免费在线观看| 国产欧美日韩免费看aⅴ视频| 国产欧美韩国高清| 欧美区在线播放| 国产黑人绿帽在线第一区| 国内精品久久久久伊人av| 午夜精品久久久久久久99热浪潮| 欧美日韩一区二区精品| 国产在线98福利播放视频| 国产精品久久久久久久电影| 国产成人精品电影| 日韩av免费看| 91精品国产沙发| 茄子视频成人在线| 91精品在线国产| 国产精品久久一区| 久久精品国产成人| 91在线视频一区| 欧美激情精品久久久久久| 日韩电影大全免费观看2023年上| 亚洲欧洲一区二区三区在线观看| 日韩中文字幕免费| 热久久免费视频精品| 深夜福利亚洲导航| 国产亚洲人成网站在线观看| 韩日欧美一区二区| 日韩一区在线视频| 亚洲欧洲中文天堂| 狠狠色噜噜狠狠狠狠97| 国产亚洲视频中文字幕视频| 黑丝美女久久久| 成人亚洲欧美一区二区三区| 97国产精品人人爽人人做| 日韩av在线网页| 黄网站色欧美视频| 亚洲欧美中文日韩在线| 久久久国产一区二区三区| 欧美激情综合亚洲一二区| 国产剧情日韩欧美| 欧美一区二区三区四区在线| 97精品一区二区视频在线观看| 亚洲国产精品女人久久久| 日本高清+成人网在线观看| 成人中心免费视频| 国产午夜精品美女视频明星a级| 国产精品色悠悠| 成人激情免费在线| 日韩视频免费观看| 亚洲国产精品久久久| 成人免费在线视频网站| 国产精品久久中文| 中文字幕在线观看亚洲| 日本一区二区在线免费播放| 精品一区二区三区电影| 尤物九九久久国产精品的分类| 国产精品免费视频xxxx| 国产欧美精品久久久| 久久久久久久久久久免费| www.午夜精品| 91精品国产91久久久久久不卡| 欧美性受xxxx白人性爽| 日韩最新中文字幕电影免费看| 国产又爽又黄的激情精品视频| 综合国产在线观看| 亚洲日本中文字幕免费在线不卡| 亚洲福利精品在线| 国产精品1区2区在线观看| 久久久久成人精品| 亚洲国产成人精品女人久久久| 欧美天天综合色影久久精品| 亚洲自拍在线观看| 92福利视频午夜1000合集在线观看| 国产一区二区三区精品久久久| 国产一区二中文字幕在线看| 在线播放日韩精品| 亚洲精品日韩丝袜精品| 亚洲视频在线观看免费| 亚洲福利视频久久| 欧美久久精品午夜青青大伊人| 亚洲第一免费网站| 国产在线精品一区免费香蕉| 91精品综合久久久久久五月天| 欧洲精品久久久| 在线观看免费高清视频97| 欧美一区二区三区四区在线| 亚洲一区二区三区sesese| 国产成人+综合亚洲+天堂| 国产精品小说在线| 日韩午夜在线视频| 日韩精品免费在线视频观看| 影音先锋欧美精品| 亚洲视频精品在线| 国产成人在线一区二区| 精品国产一区二区三区久久狼5月| 黑人精品xxx一区一二区| 91精品在线一区| 欧美亚洲激情视频| 九九热这里只有精品免费看| 国产91精品久| 亚洲激情第一页| 亚洲精品乱码久久久久久按摩观| 在线观看久久久久久| 最新的欧美黄色| 日韩av一卡二卡| 久久精品91久久久久久再现| 久久91亚洲人成电影网站| 91精品国产91久久久久久不卡| 午夜精品三级视频福利|