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

回答編集履歴

1

回答の補足と文言の訂正

2021/08/24 10:59

投稿

mayu-
mayu-

スコア335

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 |