質問編集履歴

13

不要文削除

2021/02/02 03:20

投稿

UmiSea2
UmiSea2

スコア1

test CHANGED
File without changes
test CHANGED
@@ -116,8 +116,6 @@
116
116
 
117
117
  status2の数が1個以上のときはstatus2を表示、ということを想定しています。
118
118
 
119
- status3がKJ_CODE(1234)の数
120
-
121
119
 
122
120
 
123
121
  ### 発生している問題

12

タグの追加

2021/02/02 03:20

投稿

UmiSea2
UmiSea2

スコア1

test CHANGED
File without changes
test CHANGED
File without changes

11

誤字脱字修正

2021/02/02 03:18

投稿

UmiSea2
UmiSea2

スコア1

test CHANGED
File without changes
test CHANGED
@@ -17,6 +17,8 @@
17
17
  ユーザーID
18
18
 
19
19
  KJコード
20
+
21
+ PGコード
20
22
 
21
23
  ステータスコード
22
24
 

10

サンプルのテーブル項目が足りなかったため一つ追加しました。

2021/02/02 03:10

投稿

UmiSea2
UmiSea2

スコア1

test CHANGED
File without changes
test CHANGED
@@ -32,6 +32,8 @@
32
32
 
33
33
  ,KJ_CODE NUMBER
34
34
 
35
+ ,PG_CODE NUMBER
36
+
35
37
  ,STATUS_CODE NUMBER
36
38
 
37
39
  );
@@ -46,29 +48,29 @@
46
48
 
47
49
  ```SQL
48
50
 
49
- INSERT INTO TEST(USER_ID, KJ_CODE, STATUS_CODE ) VALUES ('0010', 1234,1) ;
51
+ INSERT INTO TEST(USER_ID, KJ_CODE,PG_CODE,STATUS_CODE ) VALUES ('0010',1234,1111,1) ;
50
52
 
51
- INSERT INTO TEST(USER_ID, KJ_CODE, STATUS_CODE ) VALUES ('0010', 1234,2) ;
53
+ INSERT INTO TEST(USER_ID, KJ_CODE,PG_CODE,STATUS_CODE ) VALUES ('0010',1234,1112,2) ;
52
54
 
53
- INSERT INTO TEST(USER_ID, KJ_CODE, STATUS_CODE ) VALUES ('0010', 1234,3) ;
55
+ INSERT INTO TEST(USER_ID, KJ_CODE,PG_CODE,STATUS_CODE ) VALUES ('0010',1234,1113,3) ;
54
56
 
55
- INSERT INTO TEST(USER_ID, KJ_CODE, STATUS_CODE ) VALUES ('0010', 1234,4) ;
57
+ INSERT INTO TEST(USER_ID, KJ_CODE,PG_CODE,STATUS_CODE ) VALUES ('0010',1234,1114,4) ;
56
58
 
57
- INSERT INTO TEST(USER_ID, KJ_CODE, STATUS_CODE ) VALUES ('0010', 1234,2) ;
59
+ INSERT INTO TEST(USER_ID, KJ_CODE,PG_CODE,STATUS_CODE ) VALUES ('0010',1234,1115,1) ;
58
60
 
59
- INSERT INTO TEST(USER_ID, KJ_CODE, STATUS_CODE ) VALUES ('0010', 1234,3) ;
61
+ INSERT INTO TEST(USER_ID, KJ_CODE,PG_CODE,STATUS_CODE ) VALUES ('0010',1234,1116,1) ;
60
62
 
61
- INSERT INTO TEST(USER_ID, KJ_CODE, STATUS_CODE ) VALUES ('0010', 1234,1) ;
63
+ INSERT INTO TEST(USER_ID, KJ_CODE,PG_CODE,STATUS_CODE ) VALUES ('0010',1234,1117,2) ;
62
64
 
63
- INSERT INTO TEST(USER_ID, KJ_CODE, STATUS_CODE ) VALUES ('0010', 4321,1) ;
65
+ INSERT INTO TEST(USER_ID, KJ_CODE,PG_CODE,STATUS_CODE ) VALUES ('0010',4321,1111,1) ;
64
66
 
65
- INSERT INTO TEST(USER_ID, KJ_CODE, STATUS_CODE ) VALUES ('0010', 4321,1) ;
67
+ INSERT INTO TEST(USER_ID, KJ_CODE,PG_CODE,STATUS_CODE ) VALUES ('0010',4321,1112,1) ;
66
68
 
67
- INSERT INTO TEST(USER_ID, KJ_CODE, STATUS_CODE ) VALUES ('0010', 4321,2) ;
69
+ INSERT INTO TEST(USER_ID, KJ_CODE,PG_CODE,STATUS_CODE ) VALUES ('0010',4321,1113,2) ;
68
70
 
69
- INSERT INTO TEST(USER_ID, KJ_CODE, STATUS_CODE ) VALUES ('0010', 4321,3) ;
71
+ INSERT INTO TEST(USER_ID, KJ_CODE,PG_CODE,STATUS_CODE ) VALUES ('0010',4321,1114,2) ;
70
72
 
71
- INSERT INTO TEST(USER_ID, KJ_CODE, STATUS_CODE ) VALUES ('0010', 4321,2) ;
73
+ INSERT INTO TEST(USER_ID, KJ_CODE,PG_CODE,STATUS_CODE ) VALUES ('0010',4321,1115,3) ;
72
74
 
73
75
  ```
74
76
 
@@ -76,23 +78,23 @@
76
78
 
77
79
 
78
80
 
79
- そして、KJコードをGROUP BYで集約しつつKJコードをCOUNTした数と、
81
+ そして、KJコードをGROUP BYで集約しつつPG_CODEをCOUNTした合計数と、
80
82
 
81
83
  ステータスコード1~4のそれぞれのCOUNTした数をだし、
82
84
 
83
- ステータスコード1~4それぞれのCOUNTした数とKJコードをCOUNTした数、
85
+ ステータスコード1~4それぞれのCOUNTした数とPG_CODEをCOUNTした数、
84
86
 
85
87
  あるいはステータスコードの合計を例えば下記のように比較します。
86
88
 
87
89
 
88
90
 
89
- ステータスコードの値1の合計数 > KJコードの合計数
91
+ ステータスコードの値1の合計数 > PG_CODEの合計数
90
92
 
91
93
  ステータスコードの値1の合計数 < ステータスコードの値2の合計数
92
94
 
93
95
  ステータスコードの値3の合計数 > 0
94
96
 
95
- ステータスコードの値4の合計数 < KJコードの合計数
97
+ ステータスコードの値4の合計数 < PG_CODEの合計数
96
98
 
97
99
 
98
100
 
@@ -104,9 +106,15 @@
104
106
 
105
107
 
106
108
 
107
- 想定は、KJ_CODEが仮二種類あると二件データ取得され想定です。
109
+ KJ_CODEごとSTATUS_CODE 一番数多いもの、あいは1個以上ある場合など
108
110
 
111
+ 例えば、サンプルデータでKJ_CODEが1234のとき、
112
+
109
- KJ_CODEごとにSTATUS_CODE の一番が多もの取得する想定です。
113
+ status1の数が KJ_CODE(1234)のPG_CODE数より大きとstatus1表示
114
+
115
+ status2の数が1個以上のときはstatus2を表示、ということを想定しています。
116
+
117
+ status3がKJ_CODE(1234)の数
110
118
 
111
119
 
112
120
 
@@ -134,7 +142,7 @@
134
142
 
135
143
  ,KJ_CODE
136
144
 
137
- ,COUNT(KJ_CODE)
145
+ ,COUNT(PG_CODE)
138
146
 
139
147
  ,COUNT(STATUS_CODE)
140
148
 

9

誤字脱字変更。

2021/02/02 03:09

投稿

UmiSea2
UmiSea2

スコア1

test CHANGED
File without changes
test CHANGED
@@ -104,7 +104,9 @@
104
104
 
105
105
 
106
106
 
107
+ 想定は、KJ_CODEが仮に二種類あると二件のデータが取得される想定です。
107
108
 
109
+ KJ_CODEごとにSTATUS_CODE の一番数が多いものを取得する想定です。
108
110
 
109
111
 
110
112
 

8

余計な文を削除

2021/02/02 02:32

投稿

UmiSea2
UmiSea2

スコア1

test CHANGED
File without changes
test CHANGED
@@ -1,11 +1,3 @@
1
- 初めまして。初投稿となります。
2
-
3
- 不慣れな部分もありますが、なにとぞ皆様のお力をお借りできればと思いますので、
4
-
5
- 大変お手数ですが、ご回答のほどよろしくお願いいたします。
6
-
7
-
8
-
9
1
  データベースの環境はOracle 11gとなります。
10
2
 
11
3
 

7

誤字脱字変更

2021/02/01 23:40

投稿

UmiSea2
UmiSea2

スコア1

test CHANGED
File without changes
test CHANGED
@@ -136,20 +136,20 @@
136
136
 
137
137
  SELECT
138
138
 
139
- ユーザーID
139
+ ,USER_ID
140
140
 
141
- ,KJコード
141
+ ,KJ_CODE
142
142
 
143
- ,COUNT(KJコード)
143
+ ,COUNT(KJ_CODE)
144
144
 
145
- ,COUNT(ステータスコード)
145
+ ,COUNT(STATUS_CODE)
146
146
 
147
147
  FROM
148
148
 
149
- テストテーブル
149
+ TEST
150
150
 
151
151
  GROUP BY
152
152
 
153
- KJコード
153
+ KJ_CODE
154
154
 
155
155
  ```

6

コードスニペットの追加

2021/02/01 19:24

投稿

UmiSea2
UmiSea2

スコア1

test CHANGED
File without changes
test CHANGED
@@ -30,9 +30,59 @@
30
30
 
31
31
  ..................
32
32
 
33
+ ```SQL
34
+
35
+ CREATE TABLE TEST
36
+
37
+ (
38
+
39
+ USER_ID VARCHAR(10)
40
+
41
+ ,KJ_CODE NUMBER
42
+
43
+ ,STATUS_CODE NUMBER
44
+
45
+ );
46
+
47
+ ```
48
+
49
+
50
+
33
51
 
34
52
 
35
53
  このとき、ステータスコードには1~4のコードが登録されています。
54
+
55
+ ```SQL
56
+
57
+ INSERT INTO TEST(USER_ID, KJ_CODE, STATUS_CODE ) VALUES ('0010', 1234,1) ;
58
+
59
+ INSERT INTO TEST(USER_ID, KJ_CODE, STATUS_CODE ) VALUES ('0010', 1234,2) ;
60
+
61
+ INSERT INTO TEST(USER_ID, KJ_CODE, STATUS_CODE ) VALUES ('0010', 1234,3) ;
62
+
63
+ INSERT INTO TEST(USER_ID, KJ_CODE, STATUS_CODE ) VALUES ('0010', 1234,4) ;
64
+
65
+ INSERT INTO TEST(USER_ID, KJ_CODE, STATUS_CODE ) VALUES ('0010', 1234,2) ;
66
+
67
+ INSERT INTO TEST(USER_ID, KJ_CODE, STATUS_CODE ) VALUES ('0010', 1234,3) ;
68
+
69
+ INSERT INTO TEST(USER_ID, KJ_CODE, STATUS_CODE ) VALUES ('0010', 1234,1) ;
70
+
71
+ INSERT INTO TEST(USER_ID, KJ_CODE, STATUS_CODE ) VALUES ('0010', 4321,1) ;
72
+
73
+ INSERT INTO TEST(USER_ID, KJ_CODE, STATUS_CODE ) VALUES ('0010', 4321,1) ;
74
+
75
+ INSERT INTO TEST(USER_ID, KJ_CODE, STATUS_CODE ) VALUES ('0010', 4321,2) ;
76
+
77
+ INSERT INTO TEST(USER_ID, KJ_CODE, STATUS_CODE ) VALUES ('0010', 4321,3) ;
78
+
79
+ INSERT INTO TEST(USER_ID, KJ_CODE, STATUS_CODE ) VALUES ('0010', 4321,2) ;
80
+
81
+ ```
82
+
83
+
84
+
85
+
36
86
 
37
87
  そして、KJコードをGROUP BYで集約しつつKJコードをCOUNTした数と、
38
88
 

5

誤字脱字変更

2021/02/01 19:19

投稿

UmiSea2
UmiSea2

スコア1

test CHANGED
File without changes
test CHANGED
@@ -38,9 +38,9 @@
38
38
 
39
39
  ステータスコード1~4のそれぞれのCOUNTした数をだし、
40
40
 
41
- ステータスコード1~4それぞれのCOUNTした数とKJコードをCOUNTした数、あるいはステータスコードの合計を
41
+ ステータスコード1~4それぞれのCOUNTした数とKJコードをCOUNTした数、
42
42
 
43
- 例えば下記のように比較します。
43
+ あるいはステータスコードの合計を例えば下記のように比較します。
44
44
 
45
45
 
46
46
 
@@ -70,9 +70,9 @@
70
70
 
71
71
 
72
72
 
73
- 初歩的で申し訳ありませんが、一つのテーブルでGROUP BYしつつ上記のように二つの列をカウントするような記述が
73
+ 初歩的で申し訳ありませんが、一つのテーブルでGROUP BYしつつ、
74
74
 
75
- よくわかっていません。
75
+ 上記のうに二つの列をカウントするような記述がよくわかっていません。
76
76
 
77
77
  こういった場合は、やはり同一テーブルを副問い合わせなどするのでしょうか。
78
78
 

4

コードスニペットの追加

2021/02/01 19:00

投稿

UmiSea2
UmiSea2

スコア1

test CHANGED
File without changes
test CHANGED
@@ -34,9 +34,7 @@
34
34
 
35
35
  このとき、ステータスコードには1~4のコードが登録されています。
36
36
 
37
- そして、KJコードをGROUP BYで集約しつつ
37
+ そして、KJコードをGROUP BYで集約しつつKJコードをCOUNTした数と、
38
-
39
- KJコードをCOUNTした数と、
40
38
 
41
39
  ステータスコード1~4のそれぞれのCOUNTした数をだし、
42
40
 
@@ -84,17 +82,17 @@
84
82
 
85
83
  現在私自身は、下記のようなSQLの記述状況で手間取ってしまっています。
86
84
 
87
-
85
+ ```SQL
88
86
 
89
87
  SELECT
90
88
 
91
89
  ユーザーID
92
90
 
93
- KJコード
91
+ ,KJコード
94
92
 
95
- COUNT(KJコード)
93
+ ,COUNT(KJコード)
96
94
 
97
- COUNT(ステータスコード)
95
+ ,COUNT(ステータスコード)
98
96
 
99
97
  FROM
100
98
 
@@ -103,3 +101,5 @@
103
101
  GROUP BY
104
102
 
105
103
  KJコード
104
+
105
+ ```

3

環境、現状の状況追記

2021/02/01 18:58

投稿

UmiSea2
UmiSea2

スコア1

test CHANGED
File without changes
test CHANGED
@@ -3,6 +3,10 @@
3
3
  不慣れな部分もありますが、なにとぞ皆様のお力をお借りできればと思いますので、
4
4
 
5
5
  大変お手数ですが、ご回答のほどよろしくお願いいたします。
6
+
7
+
8
+
9
+ データベースの環境はOracle 11gとなります。
6
10
 
7
11
 
8
12
 
@@ -60,6 +64,10 @@
60
64
 
61
65
 
62
66
 
67
+
68
+
69
+
70
+
63
71
  ### 発生している問題
64
72
 
65
73
 
@@ -71,3 +79,27 @@
71
79
  こういった場合は、やはり同一テーブルを副問い合わせなどするのでしょうか。
72
80
 
73
81
  組み方、考え方をご教授頂けますと幸いです。
82
+
83
+
84
+
85
+ 現在私自身は、下記のようなSQLの記述状況で手間取ってしまっています。
86
+
87
+
88
+
89
+ SELECT
90
+
91
+ ユーザーID
92
+
93
+ KJコード
94
+
95
+ COUNT(KJコード)
96
+
97
+ COUNT(ステータスコード)
98
+
99
+ FROM
100
+
101
+ テストテーブル
102
+
103
+ GROUP BY
104
+
105
+ KJコード

2

誤字脱字変更

2021/02/01 18:52

投稿

UmiSea2
UmiSea2

スコア1

test CHANGED
File without changes
test CHANGED
@@ -30,7 +30,7 @@
30
30
 
31
31
  このとき、ステータスコードには1~4のコードが登録されています。
32
32
 
33
- そして、KJコードをGroupByで集約しつつ
33
+ そして、KJコードをGROUP BYで集約しつつ
34
34
 
35
35
  KJコードをCOUNTした数と、
36
36
 
@@ -54,7 +54,7 @@
54
54
 
55
55
  そのうえで最終的に、
56
56
 
57
- ユーザーID、GruoupByしたKJコード、CASEか何かで比較したステータスコード
57
+ ユーザーID、GROUP BYしたKJコード、CASEか何かで比較したステータスコード
58
58
 
59
59
  のデータを取得したいです。
60
60
 
@@ -64,7 +64,7 @@
64
64
 
65
65
 
66
66
 
67
- 初歩的で申し訳ありませんが、一つのテーブルでGrupuByしつつ上記のように二つの列をカウントするような記述が、
67
+ 初歩的で申し訳ありませんが、一つのテーブルでGROUP BYしつつ上記のように二つの列をカウントするような記述が、
68
68
 
69
69
  よくわかっていません。
70
70
 

1

誤字脱字変更

2021/02/01 18:47

投稿

UmiSea2
UmiSea2

スコア1

test CHANGED
File without changes
test CHANGED
@@ -60,10 +60,6 @@
60
60
 
61
61
 
62
62
 
63
- ■■な機能を実装中に以下のエラーメッセージが発生しました。
64
-
65
-
66
-
67
63
  ### 発生している問題
68
64
 
69
65