本連載はSQLの応用力を身に付けたいエンジニア向けに、さまざまなテクニックを紹介する。SQLの基本構文は平易なものだが、実務で活用するには教科書的な記述を理解するだけでは不十分だ。本連載は、著名なメールマガジン「おら!オラ! Oracle - どっぷり検証生活」を発行するインサイトテクノロジーのコンサルタントを執筆陣に迎え、SQLのセンス向上に役立つ大技小技を紹介していく。(編集局)
今回はOracle8i(リリース8.1.6)から実装されている分析関数について解説します。分析機能を理解しておくと、いままでは副問い合わせや複数回に分けていた問い合わせを1回のSQL文で簡単に行えるようになります。
まず、分析関数とは、どのような関数であるのかを簡単に説明しておきましょう。
集計関数は、集合(指定されたグループ全体)に基づく単一結果行を戻します。これに対して、分析関数は集合内の指定された範囲で集計を行った結果を戻します。ちょっと難しいので、図1で理解してください。
図1を見て理解できた方は、分析関数がどのように処理されるのか、ピンときていると思います。
<分析関数の処理順序>
分析関数は、その機能によって以下のカテゴリに分類できます。
カテゴリ | 使用例 |
---|---|
ランク付け関数群 | 結果セットのグループのランキングを計算する |
ウィンドウ関数群 | 累積集計を計算する |
レポート関数群 | 市場占有率などのシェアを計算する |
ラグ/リード関数群 | 前月との比較を計算する |
線形回帰関数群 | 統計情報(傾き、切片など)を計算する |
表1 分析関数の機能カテゴリと使用例 |
分析関数が提供する主なメリットは、以下です。
それでは、次ページで実際の使用方法を見ていきましょう。(次ページへ続く)
Copyright © ITmedia, Inc. All Rights Reserved.