タグ

sqlと分析関数に関するlocke-009のブックマーク (2)

  • 分析関数(ウインドウ関数)をわかりやすく説明してみた

    はじめに ちょっととっつきにくいけどとっても便利な分析関数について、なるべく分かりやすく説明してみようと思います。Oracleを対象にしていますが、他のDBでもたぶん似たようなものでしょう(無責任)。 まず分析関数とは何をするものか、ですが、一言で言うと集合関数と同じ集計動作をそれぞれの行に制限範囲で実行するものです。ここでいう集合関数とは、MAXやSUMやAVG等、GROUP BYと共に使い行をまとめるて集計計算する関数ですね。分析関数は集合関数と同様の計算をしますが、集合関数と違い行をまとめません。それぞれの行で集計計算し結果を返します。ここが集合関数との大きな違いです。 また、集合関数ではGROUP BYの同じカラム値をもつ全行を一つに集計しますが、分析関数では集計対象となる行の範囲を任意で指定できます。関数に続くOVER句でこの範囲指定を行います。集合関数と分析関数は基同じ名前な

    分析関数(ウインドウ関数)をわかりやすく説明してみた
  • 図でイメージするOracle DatabaseのSQL全集 第3回 分析関数 | Oracle 日本

    Row_Numberとrankとdense_rank 順位や連番を求める 順位や連番を求めるのに使うのが、Row_Number関数とrank関数とdense_rank関数です。 create table RankingSample(ID,Score) as select 1,100 from dual union all select 1, 90 from dual union all select 1, 90 from dual union all select 1, 80 from dual union all select 1, 70 from dual union all select 2,100 from dual union all select 2,100 from dual union all select 2,100 from dual union all select

  • 1