teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記

2019/08/25 04:13

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -6,4 +6,13 @@
6
6
  FROM student
7
7
  GROUP BY class, gender
8
8
  ```
9
- 上記は相関副問合せでclassの人数を求めています。
9
+ 上記は相関副問合せでclassの人数を求めています。
10
+
11
+ レベルを揃えるならクロス集計
12
+ ```SQL
13
+ SELECT class
14
+ , sum(gender='男') as man_count, , sum(gender='女') as woman_count
15
+ , sum(gender='男') / count(*) as man_per, sum(gender='女') / count(*) as woman_per
16
+ FROM student
17
+ GROUP BY class
18
+ ```

1

推敲

2019/08/25 04:13

投稿

sazi
sazi

スコア25430

answer CHANGED
@@ -1,7 +1,8 @@
1
1
  集計の単位(group by の項目)より大きいもの(group by の項目が少ないもの)を求めるには別な問い合わせをするしかありません。
2
2
 
3
3
  ```SQL
4
+ SELECT class, gender, count(*) as count
4
- SELECT class, gender, count(*) as count, count(*) / (select count(*) from student where class=t1.class) as per
5
+ , count(*) / (select count(*) from student where class=t1.class) as per
5
6
  FROM student
6
7
  GROUP BY class, gender
7
8
  ```