• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:クロス集計のSQL)

クロス集計のSQL

このQ&Aのポイント
  • クロス集計とは、複数の項目を対象にして統計データを集計する方法です。
  • クロス集計のSQLを使えば、性別と血液型といった複数の項目を組み合わせて集計が可能です。
  • サイトで解説されているクロス集計のSQLを探すことで、より詳しい解説を得ることができます。

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

  • ベストアンサー
回答No.2

#1回答者です。 MySQL 5.0以降が前提となりますが、以下のSQLを考えてみました。 create table person (name varchar(10), sex tinyint, blood varchar(2)); insert into person values ('川口',1,'A'), ('宮本',1,'B'), ('加地',1,'A'), ('三都主',1,'A'), ('中田英',1,'O'), ('稲本',1,'AB'), ('中村',1,'?'), ('高原',1,'A'), ('柳沢',1,'B'), ('玉田',1,'A'), ('巻',1,'AB'), ('川上',2,'O'), ('澤',2,'A'); insert into person values ('川口',2,'A'), ('宮本',2,'B'), ('加地',2,'A'); select sex, sum(A) as A, sum(B) as B, sum(AB) as AB, sum(O) as O, sum(etc) as etc from ( select sex, case when blood='A' then count(*) else 0 end as A, case when blood='B' then count(*) else 0 end as B, case when blood='AB' then count(*) else 0 end as AB, case when blood='O' then count(*) else 0 end as O, case when blood not in('A','B','AB','O') then count(name) else 0 end as etc from person group by sex,blood ) as x group by sex order by sex ;

maaaa
質問者

お礼

ありがとうございました たぶんこれでできるとおもいます まずは、お礼を、と感謝を申し上げます

その他の回答 (1)

回答No.1

何が何でも、美しくなくて一つのSQLでやりたいですか? 分かりやすく、美しくなるなら、複数のSQLに分かれてもいいですか?

関連するQ&A