回答編集履歴
1
回答の補足と文言の訂正
answer
CHANGED
@@ -39,4 +39,49 @@
|
|
39
39
|
| W | 1 | 2 | 4 |
|
40
40
|
|
41
41
|
|
42
|
-
参考書の記載どおりになりました。
|
42
|
+
参考書の記載どおりになりました。
|
43
|
+
|
44
|
+
### 追記
|
45
|
+
k.fujisawaさんのご指摘を受けて回答を見返すと
|
46
|
+
先の私の回答、```一次元配列(集合)```という表現は確かに変でした。
|
47
|
+
|
48
|
+
インラインビューを用い、多段クエリにしたら
|
49
|
+
|
50
|
+
> case文によって疑似的なテーブルが作成されるのでしょうか?
|
51
|
+
|
52
|
+
の「 疑似的なテーブルが作成される 」に近い```SQL```になりそうですね。
|
53
|
+
|
54
|
+
```SQL
|
55
|
+
SELECT sex
|
56
|
+
, sum(k) Kanagawa
|
57
|
+
, sum(o) Osaka
|
58
|
+
, sum(t) Tokyo
|
59
|
+
FROM
|
60
|
+
(
|
61
|
+
SELECT sex
|
62
|
+
, case user_place when 'Kanagawa' then 1 else 0 end k
|
63
|
+
, case user_place when 'Osaka' then 1 else 0 end o
|
64
|
+
, case user_place when 'Tokyo' then 1 else 0 end t
|
65
|
+
FROM master_customer
|
66
|
+
) q
|
67
|
+
GROUP BY sex ;
|
68
|
+
```
|
69
|
+
|
70
|
+
この```SQL```だとどうでしょうか。
|
71
|
+
インラインビュー```q```は「 疑似的なテーブル 」になっており、
|
72
|
+
結果セットは以下のようになります。
|
73
|
+
|
74
|
+
| sex | k | o | t |
|
75
|
+
|:--|:--:|--:|--:|
|
76
|
+
| M | 1 | 0 | 0 |
|
77
|
+
| M | 0 | 1 | 0 |
|
78
|
+
| M | 0 | 0 | 1 |
|
79
|
+
| M | 1 | 0 | 0 |
|
80
|
+
| M | 0 | 0 | 1 |
|
81
|
+
| W | 1 | 0 | 0 |
|
82
|
+
| W | 0 | 0 | 1 |
|
83
|
+
| W | 0 | 0 | 1 |
|
84
|
+
| W | 0 | 1 | 0 |
|
85
|
+
| W | 0 | 1 | 0 |
|
86
|
+
| W | 0 | 0 | 1 |
|
87
|
+
| W | 0 | 0 | 1 |
|