回答編集履歴
2
追記
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
推敲
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
|
-
|
5
|
+
, count(*) / (select count(*) from student where class=t1.class) as per
|
5
6
|
FROM student
|
6
7
|
GROUP BY class, gender
|
7
8
|
```
|