Decode360's Blog

          業(yè)精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 ::  :: 管理 ::
            397 隨筆 :: 33 文章 :: 29 評(píng)論 :: 0 Trackbacks
          ratio_to_report函數(shù)
          ?
          ??? 學(xué)習(xí)一下ratio_to_report函數(shù),這個(gè)函數(shù)今天才遇到,以前都沒有注意。主要是用來進(jìn)行比例的統(tǒng)計(jì)的,也算是一個(gè)基礎(chǔ)的統(tǒng)計(jì)函數(shù),格式也沒有什么特別的,只在這里做一個(gè)簡(jiǎn)單的記錄。
          --------------------------------------------------
          ?
          Syntax
          ?
          ?
          ?
          ?
          RATIO_TO_REPORT is an analytic function. It computes the ratio of a value to the sum of a set of values. If expr evaluates to null, then the ratio-to-report value also evaluates to null.
          ?
          The set of values is determined by the query_partition_clause. If you omit that clause, then the ratio-to-report is computed over all rows returned by the query.
          ?
          You cannot use RATIO_TO_REPORT or any other analytic function for expr. That is, you cannot nest analytic functions, but you can use other built-in function expressions for expr.
          ?
          Examples
          ?
          The following example calculates the ratio-to-report value of each purchasing clerk's salary to the total of all purchasing clerks' salaries:
          ?
          SELECT last_name, salary, RATIO_TO_REPORT(salary) OVER () AS rr
          ?? FROM employees
          ?? WHERE job_id = 'PU_CLERK';
          ?
          LAST_NAME???????????????????? SALARY???????? RR
          ------------------------- ---------- ----------
          Khoo??????????????????????????? 3100 .223021583
          Baida?????????????????????????? 2900 .208633094
          Tobias????????????????????????? 2800 .201438849
          Himuro????????????????????????? 2600? .18705036
          Colmenares????????????????????? 2500 .179856115
          ?
          ?
          --統(tǒng)計(jì)業(yè)務(wù)人員工資在本部門中的占比
          ?
          SQL> select deptno,
          ? 2???????? ename,
          ? 3???????? sal,
          ? 4???????? to_char(round(ratio_to_report(sal) over(partition by deptno) * 100,
          ? 5?????????????????????? 2),
          ? 6???????????????? '990.00') || '%' rtr
          ? 7??? from emp
          ? 8?? order by emp.deptno, emp.sal desc;
          ?
          ??? DEPTNO ENAME???????????? SAL RTR
          ---------- ---------- ---------- --------
          ??????? 10 KING???????????? 5000?? 57.14%
          ??????? 10 CLARK??????????? 2450?? 28.00%
          ??????? 10 MILLER?????????? 1300?? 14.86%
          ??????? 20 SCOTT??????????? 3000?? 27.59%
          ??????? 20 FORD???????????? 3000?? 27.59%
          ??????? 20 JONES??????????? 2975?? 27.36%
          ??????? 20 ADAMS??????????? 1100?? 10.11%
          ??????? 20 SMITH???????????? 800??? 7.36%
          ??????? 30 BLAKE??????????? 2850?? 30.32%
          ??????? 30 ALLEN??????????? 1600?? 17.02%
          ??????? 30 TURNER?????????? 1500?? 15.96%
          ??????? 30 WARD???????????? 1250?? 13.30%
          ??????? 30 MARTIN?????????? 1250?? 13.30%
          ??????? 30 JAMES???????????? 950?? 10.11%
          ?
          14 rows selected.
          ?
          --注意最終格式的整理
          ?
          ?
          ?
          ?
          posted on 2009-04-02 21:56 decode360 閱讀(372) 評(píng)論(0)  編輯  收藏 所屬分類: 05.SQL
          主站蜘蛛池模板: 于都县| 玉环县| 措美县| 台中县| 自贡市| 凉城县| 商水县| 彰化市| 琼结县| 沈阳市| 南木林县| 新郑市| 天祝| 屏东县| 望奎县| 丹巴县| 泽普县| 延川县| 棋牌| 朝阳县| 西盟| 泾川县| 壤塘县| 吉安县| 赣榆县| 兴隆县| 米泉市| 安岳县| 扬州市| 鄂托克前旗| 上饶县| 香港 | 仙游县| 滦平县| 绥阳县| 永康市| 乃东县| 虎林市| 江达县| 运城市| 延吉市|