sql >> データベース >  >> RDS >> Oracle

Oracle:クエリで合計のパーセントを取得する方法は?

    count(1) sum(1)と同じです あなたの場合。

    次のようなものを試してください:

    18:39:36 [email protected]> ed
    Wrote file S:\\tools\buffer.sql
    
      1  select owner,
      2         count(*) group_cnt,
      3         sum(count(*)) over() total_cnt,
      4         round(100*(count(*) / sum(count(*)) over ()),2) perc
      5    from dba_objects
      6   group by owner
      7*  order by 4 desc
    18:39:57 [email protected]> /
    
    OWNER                           GROUP_CNT  TOTAL_CNT       PERC
    ------------------------------ ---------- ---------- ----------
    SYS                                 31609      59064      53.52
    PUBLIC                              24144      59064      40.88
    XDB                                  1660      59064       2.81
    SYSTEM                                597      59064       1.01
    WMSYS                                 332      59064        .56
    EXFSYS                                312      59064        .53
    IRKAZDATA                             158      59064        .27
    STRMADMIN                              92      59064        .16
    DBSNMP                                 55      59064        .09
    RI                                     25      59064        .04
    PASS                                   16      59064        .03
    POTS                                   19      59064        .03
    TI                                     11      59064        .02
    STRMODS                                11      59064        .02
    OUTLN                                  10      59064        .02
    APPQOSSYS                               5      59064        .01
    ORACLE_OCM                              8      59064        .01
    
    17 rows selected.
    
    Elapsed: 00:00:00.16
    

    更新 :またはratio_to_reportでさらに単純化

    18:53:36 [email protected]> ed
    Wrote file S:\\tools\buffer.sql
    
      1  select owner,
      2         round(100*ratio_to_report(count(*)) over (), 2) perc
      3    from dba_objects
      4   group by owner
      5*  order by 2 desc
    18:54:03 [email protected]> /
    
    OWNER                                PERC
    ------------------------------ ----------
    SYS                                 53.52
    PUBLIC                              40.88
    XDB                                  2.81
    SYSTEM                               1.01
    WMSYS                                 .56
    EXFSYS                                .53
    IRKAZDATA                             .27
    STRMADMIN                             .16
    DBSNMP                                .09
    RI                                    .04
    PASS                                  .03
    POTS                                  .03
    TI                                    .02
    STRMODS                               .02
    OUTLN                                 .02
    APPQOSSYS                             .01
    ORACLE_OCM                            .01
    
    17 rows selected.
    
    Elapsed: 00:00:00.20
    


    1. SQLAlchemyと複数のプロセスとの接続の問題

    2. PLPDF_TOOLKIT PL / SQLパッケージを使用して、Oracleで複数のPDFファイルを1つのPDFにマージ/結合

    3. 更新コマンドでのSQLServerエラー-現在のコマンドで重大なエラーが発生しました

    4. SQL Serverセマンティック検索を使用してWindowsファイルシステムにドキュメントを保存および分析する方法を学ぶ–パート1