SQLで最頻値を求める
「私の服」テーブルの中で、最も多い色を求める。
select 色, count(*) as 枚数 from 私の服 group by 色 having count(*) >= (select max(CNT) from (select count(*) AS CNT from 私の服 group by 色 ) as C )
色 | 枚数 |
---|---|
赤 | 23 |
↓
「”私の服”の中で一番多い色は”赤”で、計23枚でした」
追記。簡略化版。
select 色 from 私の服 group by 色 having count(*) >= all(select count(*) AS CNT from 私の服 group by 色 ) as C
グループ化した最頻値
select 季節, 色 from 私の服 group by 季節, 色 having count(*) >= all(select count(*) from 私の服 B where A.季節 = B.季節 group by 色 ) as C order by 季節, 色
季節 | 色 | 枚数 |
---|---|---|
春 | 赤 | 7 |
夏 | 青 | 10 |
秋 | 黒 | 6 |
冬 | 緑 | 4 |
↓
「”私の服”の中で、春物で一番多い色は赤で7枚、夏物は青で10枚、秋物は黒で6枚、冬物は緑で4枚でした」