Beyond The Limit

はじまりは2001年

SQL学び直し2

第三章:集約と並べ替え

3-1:テーブルを集約して検索する

  • 集約関数は基本的にNULLを除外して集計する、ただしcount(*)のみNULLを含んだ全行を数える、count(カラム名)だとNULLが除外される
    • COUNTはレコード数を数える、SUMはデータの合計を返す
    • SUM/AVGの内訳はNULL値を除外して計算される、AVGに関しては分母からNULL値の行数が引かれて平均が計算される
    • countとdistinctを併用する場合はcount(distinct カラム名)となる、括弧内の処理が先に行われるため

3-2:テーブルをグループに切り分ける

  • group byとcountの組み合わせで分類ごとの行数(NULL含)が集計できる
  • from (where) group byという並びにしないといけない
  • NULLもグルーピングされる
  • group byを使う時はグルーピングするカラム、集約関数、定数以外はselect句に入れられない
  • group byを使う時はgroup by句に別名(as〜)は使えない(出来たとしても標準外なのでよくない)
  • group byは結果をソートしない、ランダムに出力する
  • whereの条件に集約関数(count、sum他)は使えない


今日はここまで。