質問編集履歴

4

2022/06/16 07:17

投稿

ooo_oooo
ooo_oooo

スコア1

test CHANGED
File without changes
test CHANGED
@@ -68,7 +68,7 @@
68
68
  3  ううう  
69
69
  4  えええ  
70
70
 
71
- コードを下記のように書いてみたのですが、'field list'にないよエラーが出てしまい詰まっています。
71
+ とりあえず色々なサイトから引っ張ってきてコードを下記のように書いてみたのですが、'field list'にないよエラーが出てしまい詰まっています。
72
72
  ```sql
73
73
  SELECT name,
74
74
  max(CASE WHEN color = '赤' THEN 1 ELSE 0 END) AS 赤,

3

2022/06/16 07:16

投稿

ooo_oooo
ooo_oooo

スコア1

test CHANGED
File without changes
test CHANGED
@@ -69,4 +69,26 @@
69
69
  4  えええ  
70
70
 
71
71
  コードを下記のように書いてみたのですが、'field list'にないよエラーが出てしまい詰まっています。
72
+ ```sql
73
+ SELECT name,
74
+ max(CASE WHEN color = '赤' THEN 1 ELSE 0 END) AS 赤,
75
+ max(CASE WHEN color = '青' THEN 1 ELSE 0 END) AS 青,
76
+ max(CASE WHEN color = '黄' THEN 1 ELSE 0 END) AS 黄,
77
+ max(CASE WHEN color = '白' THEN 1 ELSE 0 END) AS 白,
78
+ max(CASE WHEN color = '黒' THEN 1 ELSE 0 END) AS 黒
79
+ FROM (
80
+ SELECT
81
+ T.id,
82
+ T.name AS "商品名",
83
+ C.color AS "色",
84
+ T.price AS "値段"
85
+ FROM
86
+ toys AS T
87
+ RIGHT JOIN
88
+ colortable AS C
89
+ ON
90
+ T.colorcode = C.colorcode) AS toys2
91
+ GROUP BY name;
92
+
93
+ ```
72
94
  ご教授よろしくお願いいたします!

2

2022/06/16 07:15

投稿

ooo_oooo
ooo_oooo

スコア1

test CHANGED
File without changes
test CHANGED
@@ -1,5 +1,47 @@
1
1
  タイトル通りのことをしたいのですが、組み合わせ方がわかりません。
2
2
 
3
+ 一つ目のテーブル
4
+ ```sql
5
+ INSERT INTO
6
+ sql_task.toys
7
+ (id,name,colorcode,price,remarks)
8
+ VALUES
9
+ (1, 'パーティ衣装', "002", 1680,NULL),
10
+ (2, 'ブリキのおもちゃ', "001", 412,NULL),
11
+ (3, 'ゾンビのマスク', "005", 568,NULL),
12
+ (4, 'ブリキのおもちゃ', "004", 412,NULL),
13
+ (5, 'ゾンビのマスク', "002", 568,NULL),
14
+ (6, 'ブリキのおもちゃ', "005", 412,NULL),
15
+ (7, 'ゾンビのマスク', "001", 568,NULL),
16
+ (8, 'ゾンビのマスク', "004", 568,NULL),
17
+ (9, 'パーティ衣装', "001", 1680,NULL),
18
+ (10, 'パーティ衣装', "004", 1680,NULL),
19
+ (11, 'パーティ衣装', "005", 1680,NULL),
20
+ (12, 'ブリキのおもちゃ', "001", 412,NULL),
21
+ (13, 'パーティ衣装', "001", 1680,NULL),
22
+ (14, 'ゾンビのマスク', "004", 568,NULL),
23
+ (15, 'パーティ衣装', "003", 1680,NULL),
24
+ (16, 'ブリキのおもちゃ', "003", 412,NULL),
25
+ (17, 'ブリキのおもちゃ', "003", 412,NULL),
26
+ (18, 'パーティ衣装', "003", 1680,NULL),
27
+ (19, 'ブリキのおもちゃ', "002", 412,NULL),
28
+ (20, 'ゾンビのマスク', "001", 568,NULL);
29
+ ```
30
+
31
+ 2つ目のテーブル
32
+ ```sql
33
+ INSERT INTO
34
+ sql_task.colortable
35
+ (id,colorcode,color)
36
+ VALUES
37
+ (1,"001","赤"),
38
+ (2, "002", "青"),
39
+ (3, "003", "黄"),
40
+ (4, "004", "白"),
41
+ (5, "005", "黒");
42
+ ```
43
+
44
+ 上記2つを結合したテーブル
3
45
  ```sql
4
46
  SELECT
5
47
  T.id,
@@ -12,10 +54,9 @@
12
54
  colortable AS C
13
55
  ON
14
56
  T.colorcode = C.colorcode;
15
-
16
57
  ```
17
58
 
18
- 上記コをサブクエリとし、
59
+ 結合済みのテブルをサブクエリとし、
19
60
  それを使用してクロス集計を行います
20
61
 
21
62
  クロス集計の結果は下記のように、色がそれぞれ何回出たかカウントした集計になってほしいです。

1

2022/06/16 07:11

投稿

ooo_oooo
ooo_oooo

スコア1

test CHANGED
File without changes
test CHANGED
@@ -1,21 +1,31 @@
1
1
  タイトル通りのことをしたいのですが、組み合わせ方がわかりません。
2
2
 
3
- テーブル名 a
3
+ ```sql
4
+ SELECT
5
+ T.id,
4
- id 商品名  色  値段
6
+ T.name AS "商品名",
7
+ C.color AS "色",
8
+ T.price AS "値段"
9
+ FROM
10
+ toys AS T
11
+ RIGHT JOIN
5
- 1  あああ  赤  100
12
+ colortable AS C
6
- 2  いいい  青  200
13
+ ON
7
- 3  ううう  白  300
8
- 4  えええ  黄色 400
9
- 上の4つがランダムにid20まである
14
+ T.colorcode = C.colorcode;
10
15
 
16
+ ```
17
+
11
- というテブルをサブクエリとし、
18
+ 上記コをサブクエリとし、
12
19
  それを使用してクロス集計を行います
13
20
 
14
21
  クロス集計の結果は下記のように、色がそれぞれ何回出たかカウントした集計になってほしいです。
15
22
 
23
+ 例:
16
24
  id 商品名  赤 青  白  黄色
17
25
  1  あああ  1  3  4  1
18
26
  2  いいい 2  4  0  2
19
27
  3  ううう  
20
28
  4  えええ  
29
+
30
+ コードを下記のように書いてみたのですが、'field list'にないよエラーが出てしまい詰まっています。
21
31
  ご教授よろしくお願いいたします!