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

質問編集履歴

4

本文修正

2020/12/17 02:05

投稿

MagMag
MagMag

スコア80

title CHANGED
File without changes
body CHANGED
@@ -1,4 +1,4 @@
1
- 以下の図のように、縦持ちテーブルを横持ちテーブルに変換したいと思っています(画像は以下リンクから引用させていただいています)。
1
+ 以下の図のように、縦持ちテーブルを横持ちテーブルに変換したいと思っています(テーブルやスクリプトは以下リンクから引用させていただいています)。
2
2
 
3
3
  [SQL で縦横変換まとめ(pivot と unpivot)](https://qiita.com/k24d/items/79bc4828c918dfeeac34)
4
4
 

3

テーブル誤り修正

2020/12/17 02:05

投稿

MagMag
MagMag

スコア80

title CHANGED
File without changes
body CHANGED
@@ -21,7 +21,7 @@
21
21
  |uid|c1|c2|c3|
22
22
  |:--|:--:|--:|--:|
23
23
  |101|11|12|13|
24
- |101|21|22|23|
24
+ |102|21|22|23|
25
25
 
26
26
 
27
27
  ```SQL

2

画像をテキスト化

2020/12/17 02:04

投稿

MagMag
MagMag

スコア80

title CHANGED
File without changes
body CHANGED
@@ -7,8 +7,23 @@
7
7
  Pythonで対応する方法もありますが、これをmySQLで実装する方法はありますでしょうか?
8
8
  そもそもテーブルの持ち方を変えた方がいいんじゃない?といった指摘でも助かります。
9
9
 
10
+ 縦持ちテーブル
10
- ![縦横変換のイメージ](37afe67d16b9d857c0584924a759ea5d.png)
11
+ |uid|key|value|
12
+ |:--|:--:|--:|
13
+ |101|c1|11|
14
+ |101|c2|12|
15
+ |101|c3|13|
16
+ |102|c1|21|
17
+ |102|c2|22|
18
+ |102|c3|23|
11
19
 
20
+ 横持ちテーブル
21
+ |uid|c1|c2|c3|
22
+ |:--|:--:|--:|--:|
23
+ |101|11|12|13|
24
+ |101|21|22|23|
25
+
26
+
12
27
  ```SQL
13
28
  SELECT uid,
14
29
  max(CASE WHEN key = 'c1' THEN value END) AS c1,

1

表現修正

2020/12/17 02:03

投稿

MagMag
MagMag

スコア80

title CHANGED
File without changes
body CHANGED
@@ -2,12 +2,12 @@
2
2
 
3
3
  [SQL で縦横変換まとめ(pivot と unpivot)](https://qiita.com/k24d/items/79bc4828c918dfeeac34)
4
4
 
5
- 対応方法としてこのページにあるCASE WHENを使って変換する方法はイメージがつくのですが、自分の場合、このキーが100個くらいあります(c1〜c100)。力技で100行のクエリーを書けなくはないのですが、キーが増える度にpivotも書き換えなければならず、不便だと感じています。
5
+ 対応方法としてこのページにあるCASE WHENを使って変換する方法はイメージがつくのですが、自分の場合、このキーが100個くらいあります(c1〜c100)。力技で100行のクエリーを書けなくはないのですが、キーが増える度にクエリも書き換えなければならず、不便だと感じています。
6
6
 
7
7
  Pythonで対応する方法もありますが、これをmySQLで実装する方法はありますでしょうか?
8
8
  そもそもテーブルの持ち方を変えた方がいいんじゃない?といった指摘でも助かります。
9
9
 
10
- ![縦横変換のイメージ](37afe67d16b9d857c0584924a759ea5d.png)]
10
+ ![縦横変換のイメージ](37afe67d16b9d857c0584924a759ea5d.png)
11
11
 
12
12
  ```SQL
13
13
  SELECT uid,