Decode360's Blog

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

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 ::  :: 管理 ::
            397 隨筆 :: 33 文章 :: 29 評論 :: 0 Trackbacks
          ratio_to_report函數
          ?
          ??? 學習一下ratio_to_report函數,這個函數今天才遇到,以前都沒有注意。主要是用來進行比例的統計的,也算是一個基礎的統計函數,格式也沒有什么特別的,只在這里做一個簡單的記錄。
          --------------------------------------------------
          ?
          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
          ?
          ?
          --統計業務人員工資在本部門中的占比
          ?
          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
          主站蜘蛛池模板: 宜州市| 兴文县| 洮南市| 三门峡市| 罗江县| 巴楚县| 莒南县| 六枝特区| 平阳县| 定结县| 吉木萨尔县| 汶上县| 黑水县| 上蔡县| 泸州市| 新丰县| 金昌市| 黔西县| 揭东县| 津市市| 繁昌县| 涞水县| 乡城县| 德州市| 成安县| 贡觉县| 霍林郭勒市| 本溪市| 云安县| 房产| 高密市| 武山县| 崇州市| 哈巴河县| 来凤县| 建水县| 塘沽区| 宁河县| 锡林郭勒盟| 宁陵县| 邵东县|