Decode360's Blog

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

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 ::  :: 管理 ::
            397 隨筆 :: 33 文章 :: 29 評論 :: 0 Trackbacks
          ratio_to_report函數(shù)
          ?
          ??? 學習一下ratio_to_report函數(shù),這個函數(shù)今天才遇到,以前都沒有注意。主要是用來進行比例的統(tǒng)計的,也算是一個基礎(chǔ)的統(tǒng)計函數(shù),格式也沒有什么特別的,只在這里做一個簡單的記錄。
          --------------------------------------------------
          ?
          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)計業(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 閱讀(378) 評論(0)  編輯  收藏 所屬分類: 05.SQL
          主站蜘蛛池模板: 柏乡县| 临桂县| 酉阳| 呼图壁县| 渝北区| 宿州市| 哈密市| 土默特右旗| 大埔区| 恩平市| 星座| 吉林省| 安泽县| 哈尔滨市| 新密市| 连州市| 信宜市| 新蔡县| 高淳县| 吉木萨尔县| 青河县| 咸阳市| 德兴市| 泗洪县| 本溪市| 仲巴县| 铁岭县| 聂拉木县| 镇平县| 林西县| 环江| 沈丘县| 黔江区| 专栏| 安徽省| 新宁县| 大理市| 紫阳县| 福海县| 海原县| 伊宁市|