トップページに戻る    次のSQLパズルへ    前のSQLパズルへ

2-3-1 モード(最頻値)を取得

SQLパズル

ModeTestテーブルの、
Col1の最頻値(最も多く存在する値)と、
最頻値のレコード数を取得する


データ作成スクリプト

create table ModeTest(Col1 int);
insert into ModeTest values(9),(5),(5),(2),(2),(2),(2);


SQL

select Col1 as "最頻値",count(*) as "最頻値のレコード数" from ModeTest
group by Col1
having count(*) >= all(select count(*) from ModeTest group by Col1);


解説

having句で、最も多く存在する値かをチェックしてます