SQL:構成比を出したい時に使う RATIO_TO_REPORT

  • URLをコピーしました!

SQLで売上構成比・割合・比率を求めたい場面はよくあります。
そんなときに便利なのが RATIO_TO_REPORT 関数です。

この記事では、

  • RATIO_TO_REPORT とは何か

  • 基本的な使い方

  • よくある使用例(売上構成比)

  • 注意点・代替手段

をわかりやすく解説します。


目次

RATIO_TO_REPORT とは?

RATIO_TO_REPORTOracle SQL の分析関数で、
全体に対する各行の割合(構成比) を簡単に計算できます。

RATIO_TO_REPORT(対象列) OVER ()
  • 合計値に対する比率を 自動計算

  • 割り算やサブクエリが不要

  • 集計ミスが起きにくい

というメリットがあります。


基本構文

👉 OVER () を指定すると 全行合計に対する割合 になります。


使用例:売上の構成比を出す

サンプルデータ

商品売上
A100
B300
C600

SQL

実行結果イメージ

商品売上構成比
A1000.1
B3000.3
C6000.6

👉 合計1000に対する割合が自動で計算されています。


パーセンテージ表示にする

そのままだと小数なので、%表示にしたい場合は以下のようにします。

結果例:

商品売上構成比(%)
A10010.00
B30030.00
C60060.00

グループごとの構成比(PARTITION BY)

カテゴリ別の構成比を出したい場合は PARTITION BY を使います。

👉 カテゴリ内合計に対する割合になります。


RATIO_TO_REPORT を使うメリット

項目内容
可読性構成比と一目で分かる
安全性合計値の計算ミスを防げる
シンプルサブクエリ不要

注意点

  • Oracle専用関数(MySQL / PostgreSQL では使えない)

  • 合計が 0 の場合は結果も 0 になる

  • 分析関数のため GROUP BY と併用時は注意


他DBでの代替方法

Oracle以外では以下のように書きます。

ただし、

  • 可読性が落ちる

  • SUM の書き忘れミスが起きやすい

という欠点があります。


まとめ

  • 構成比を出したいなら RATIO_TO_REPORT

  • 割合計算をシンプル&安全に書ける

  • 売上分析・比率集計で非常に便利

👉 Oracle SQL を使っているなら 積極的に使うべき分析関数です。

よかったらシェアしてね!
  • URLをコピーしました!
0 0
Article Rating
申し込む
注目する
guest
0 コメント一覧
最も古い
最新 高評価
インラインフィードバック
すべてのコメントを見る
目次
0
あなたの考えが大好きです、コメントしてください。x