SSブログ

ウィンドウ関数でサブクエリを回避する [SQL]

前置き

sql_row_num.png

左の表から、右のデータを抽出するSQL。
サブクエリで別表をJOINしたりseqに対しEXISTSしたりという方法が思いつくが、 それだと同じテーブルを2回読み込みことになり、パフォーマンスが悪い。
ウィンドウ関数を使えば読み込みを1回で済ませることができ、可読性も向上する。
今回の例は、カテゴリ毎にシーケンス番号が最大のデータを抽出している。
この他にも、ウィンドウ関数は様々なシーンで活用できそう。

  • 教科毎の最低・最高得点の抽出
  • 月毎の最低・最高売上店舗の抽出
  • 部門毎の最低・最高売上成績の抽出
  • etc...

SQL




nice!(0)  コメント(0) 

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。