SQL 指南書集 目次 - ray88’s diary
SQL指南書 HAVING句③の補足(SQL文詳細解説) - ray88’s diary
■メジアン(中央値・中位位)
平均値が信用できない場合、最頻値と並んで良く使用される指標にメジアンがある
母集合のデータを昇順に並べてちょうど中央に来た値。
データの個数が偶数の場合は中央の2つの平均を取る
■例題
卒業生テーブル graduates の 給与の中央値を求める
■SQLでメジアンを考える(集合指向的にメジアンを考える)際のポイント
・母集合を上位と下位の2つの集合に分割する
・分割する際に2つの集合が中央の値を共有するようにしておく
・中央の値を共有することにより共通部分の値がメジアンとなる
■SQL文
※SQL文の詳細の解説はこちらを参照
--メジアンを求めるSQL:自己非等値結合をHAVING句で使う SELECT AVG(DISTINCT income) FROM ( SELECT T1.income FROM graduates T1, graduates T2 GROUP BY T1.income --下位半分の条件 HAVING SUM(CASE WHEN T2.income >= T1.income THEN 1 ELSE 0 END) >= COUNT(*)/2 --上位半分の条件 AND SUM(CASE WHEN T2.income <= T1.income THEN 1 ELSE 0 END) >= COUNT(*)/2 ) AS TMP;