• ベストアンサー

条件別にカウントした結果を一覧表示したい

次のような表があるとします。 科目 点数 英語 93 英語 96 英語 88 独語 95 独語 83 仏語 84 仏語 89 たとえば90点以上取った回数を調べたいだけなら、 select 科目,count(科目) as 回数 from テーブル where 点数>=90 group by 科目; とすればよいのですが、 科目、85点以上の回数、90点以上の回数、95点以上の回数 というふうにまとめたいとき、上記SQL文の数字を変えたものをjoinするしかないのでしょうか? 簡単なやり方があったら教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

こんな感じです、sumを使うのがポイント create table hoge(科目 varchar(30),点数 int); insert into hoge values('英語',93),('英語',96),('英語',88),('独語',95),('独語',83),('仏語',84),('仏語',89); select 科目 ,sum(点数>=95) as 95up ,sum(点数>=90) as 90up ,sum(点数>=85) as 85up from hoge group by 科目;

関連するQ&A