質問編集履歴
13
不要文削除
title
CHANGED
File without changes
|
body
CHANGED
@@ -57,7 +57,6 @@
|
|
57
57
|
例えば、サンプルデータでKJ_CODEが1234のとき、
|
58
58
|
status1の数が KJ_CODE(1234)のPG_CODE数より大きいとstatus1を表示
|
59
59
|
status2の数が1個以上のときはstatus2を表示、ということを想定しています。
|
60
|
-
status3がKJ_CODE(1234)の数
|
61
60
|
|
62
61
|
### 発生している問題
|
63
62
|
|
12
タグの追加
title
CHANGED
File without changes
|
body
CHANGED
File without changes
|
11
誤字脱字修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -8,6 +8,7 @@
|
|
8
8
|
...............
|
9
9
|
ユーザーID
|
10
10
|
KJコード
|
11
|
+
PGコード
|
11
12
|
ステータスコード
|
12
13
|
..................
|
13
14
|
```SQL
|
10
サンプルのテーブル項目が足りなかったため一つ追加しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -15,6 +15,7 @@
|
|
15
15
|
(
|
16
16
|
USER_ID VARCHAR(10)
|
17
17
|
,KJ_CODE NUMBER
|
18
|
+
,PG_CODE NUMBER
|
18
19
|
,STATUS_CODE NUMBER
|
19
20
|
);
|
20
21
|
```
|
@@ -22,37 +23,40 @@
|
|
22
23
|
|
23
24
|
このとき、ステータスコードには1~4のコードが登録されています。
|
24
25
|
```SQL
|
25
|
-
INSERT INTO TEST(USER_ID, KJ_CODE,
|
26
|
+
INSERT INTO TEST(USER_ID, KJ_CODE,PG_CODE,STATUS_CODE ) VALUES ('0010',1234,1111,1) ;
|
26
|
-
INSERT INTO TEST(USER_ID, KJ_CODE,
|
27
|
+
INSERT INTO TEST(USER_ID, KJ_CODE,PG_CODE,STATUS_CODE ) VALUES ('0010',1234,1112,2) ;
|
27
|
-
INSERT INTO TEST(USER_ID, KJ_CODE,
|
28
|
+
INSERT INTO TEST(USER_ID, KJ_CODE,PG_CODE,STATUS_CODE ) VALUES ('0010',1234,1113,3) ;
|
28
|
-
INSERT INTO TEST(USER_ID, KJ_CODE,
|
29
|
+
INSERT INTO TEST(USER_ID, KJ_CODE,PG_CODE,STATUS_CODE ) VALUES ('0010',1234,1114,4) ;
|
30
|
+
INSERT INTO TEST(USER_ID, KJ_CODE,PG_CODE,STATUS_CODE ) VALUES ('0010',1234,1115,1) ;
|
31
|
+
INSERT INTO TEST(USER_ID, KJ_CODE,PG_CODE,STATUS_CODE ) VALUES ('0010',1234,1116,1) ;
|
29
|
-
INSERT INTO TEST(USER_ID, KJ_CODE,
|
32
|
+
INSERT INTO TEST(USER_ID, KJ_CODE,PG_CODE,STATUS_CODE ) VALUES ('0010',1234,1117,2) ;
|
30
|
-
INSERT INTO TEST(USER_ID, KJ_CODE, STATUS_CODE ) VALUES ('0010', 1234,3) ;
|
31
|
-
INSERT INTO TEST(USER_ID, KJ_CODE, STATUS_CODE ) VALUES ('0010', 1234,1) ;
|
32
|
-
INSERT INTO TEST(USER_ID, KJ_CODE,
|
33
|
+
INSERT INTO TEST(USER_ID, KJ_CODE,PG_CODE,STATUS_CODE ) VALUES ('0010',4321,1111,1) ;
|
33
|
-
INSERT INTO TEST(USER_ID, KJ_CODE,
|
34
|
+
INSERT INTO TEST(USER_ID, KJ_CODE,PG_CODE,STATUS_CODE ) VALUES ('0010',4321,1112,1) ;
|
34
|
-
INSERT INTO TEST(USER_ID, KJ_CODE,
|
35
|
+
INSERT INTO TEST(USER_ID, KJ_CODE,PG_CODE,STATUS_CODE ) VALUES ('0010',4321,1113,2) ;
|
36
|
+
INSERT INTO TEST(USER_ID, KJ_CODE,PG_CODE,STATUS_CODE ) VALUES ('0010',4321,1114,2) ;
|
35
|
-
INSERT INTO TEST(USER_ID, KJ_CODE,
|
37
|
+
INSERT INTO TEST(USER_ID, KJ_CODE,PG_CODE,STATUS_CODE ) VALUES ('0010',4321,1115,3) ;
|
36
|
-
INSERT INTO TEST(USER_ID, KJ_CODE, STATUS_CODE ) VALUES ('0010', 4321,2) ;
|
37
38
|
```
|
38
39
|
|
39
40
|
|
40
|
-
そして、KJコードをGROUP BYで集約しつつ
|
41
|
+
そして、KJコードをGROUP BYで集約しつつPG_CODEをCOUNTした合計数と、
|
41
42
|
ステータスコード1~4のそれぞれのCOUNTした数をだし、
|
42
|
-
ステータスコード1~4それぞれのCOUNTした数と
|
43
|
+
ステータスコード1~4それぞれのCOUNTした数とPG_CODEをCOUNTした数、
|
43
44
|
あるいはステータスコードの合計を例えば下記のように比較します。
|
44
45
|
|
45
|
-
ステータスコードの値1の合計数 >
|
46
|
+
ステータスコードの値1の合計数 > PG_CODEの合計数
|
46
47
|
ステータスコードの値1の合計数 < ステータスコードの値2の合計数
|
47
48
|
ステータスコードの値3の合計数 > 0
|
48
|
-
ステータスコードの値4の合計数 <
|
49
|
+
ステータスコードの値4の合計数 < PG_CODEの合計数
|
49
50
|
|
50
51
|
そのうえで最終的に、
|
51
52
|
ユーザーID、GROUP BYしたKJコード、CASEか何かで比較したステータスコード
|
52
53
|
のデータを取得したいです。
|
53
54
|
|
54
|
-
想定は、KJ_CODEが仮に二種類あると二件のデータが取得される想定です。
|
55
|
-
KJ_CODEごとにSTATUS_CODE の一番数が多いもの
|
55
|
+
KJ_CODEごとにSTATUS_CODE の一番数が多いもの、あるいは1個以上ある場合など
|
56
|
+
例えば、サンプルデータでKJ_CODEが1234のとき、
|
57
|
+
status1の数が KJ_CODE(1234)のPG_CODE数より大きいとstatus1を表示
|
58
|
+
status2の数が1個以上のときはstatus2を表示、ということを想定しています。
|
59
|
+
status3がKJ_CODE(1234)の数
|
56
60
|
|
57
61
|
### 発生している問題
|
58
62
|
|
@@ -66,7 +70,7 @@
|
|
66
70
|
SELECT
|
67
71
|
,USER_ID
|
68
72
|
,KJ_CODE
|
69
|
-
,COUNT(
|
73
|
+
,COUNT(PG_CODE)
|
70
74
|
,COUNT(STATUS_CODE)
|
71
75
|
FROM
|
72
76
|
TEST
|
9
誤字脱字変更。
title
CHANGED
File without changes
|
body
CHANGED
@@ -51,8 +51,9 @@
|
|
51
51
|
ユーザーID、GROUP BYしたKJコード、CASEか何かで比較したステータスコード
|
52
52
|
のデータを取得したいです。
|
53
53
|
|
54
|
+
想定は、KJ_CODEが仮に二種類あると二件のデータが取得される想定です。
|
55
|
+
KJ_CODEごとにSTATUS_CODE の一番数が多いものを取得する想定です。
|
54
56
|
|
55
|
-
|
56
57
|
### 発生している問題
|
57
58
|
|
58
59
|
初歩的で申し訳ありませんが、一つのテーブルでGROUP BYしつつ、
|
8
余計な文を削除
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,7 +1,3 @@
|
|
1
|
-
初めまして。初投稿となります。
|
2
|
-
不慣れな部分もありますが、なにとぞ皆様のお力をお借りできればと思いますので、
|
3
|
-
大変お手数ですが、ご回答のほどよろしくお願いいたします。
|
4
|
-
|
5
1
|
データベースの環境はOracle 11gとなります。
|
6
2
|
|
7
3
|
### 前提・実現したいこと
|
7
誤字脱字変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -67,12 +67,12 @@
|
|
67
67
|
現在私自身は、下記のようなSQLの記述状況で手間取ってしまっています。
|
68
68
|
```SQL
|
69
69
|
SELECT
|
70
|
-
|
70
|
+
,USER_ID
|
71
|
-
,
|
71
|
+
,KJ_CODE
|
72
|
-
,COUNT(
|
72
|
+
,COUNT(KJ_CODE)
|
73
|
-
,COUNT(
|
73
|
+
,COUNT(STATUS_CODE)
|
74
74
|
FROM
|
75
|
-
|
75
|
+
TEST
|
76
76
|
GROUP BY
|
77
|
-
|
77
|
+
KJ_CODE
|
78
78
|
```
|
6
コードスニペットの追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -14,8 +14,33 @@
|
|
14
14
|
KJコード
|
15
15
|
ステータスコード
|
16
16
|
..................
|
17
|
+
```SQL
|
18
|
+
CREATE TABLE TEST
|
19
|
+
(
|
20
|
+
USER_ID VARCHAR(10)
|
21
|
+
,KJ_CODE NUMBER
|
22
|
+
,STATUS_CODE NUMBER
|
23
|
+
);
|
24
|
+
```
|
17
25
|
|
26
|
+
|
18
27
|
このとき、ステータスコードには1~4のコードが登録されています。
|
28
|
+
```SQL
|
29
|
+
INSERT INTO TEST(USER_ID, KJ_CODE, STATUS_CODE ) VALUES ('0010', 1234,1) ;
|
30
|
+
INSERT INTO TEST(USER_ID, KJ_CODE, STATUS_CODE ) VALUES ('0010', 1234,2) ;
|
31
|
+
INSERT INTO TEST(USER_ID, KJ_CODE, STATUS_CODE ) VALUES ('0010', 1234,3) ;
|
32
|
+
INSERT INTO TEST(USER_ID, KJ_CODE, STATUS_CODE ) VALUES ('0010', 1234,4) ;
|
33
|
+
INSERT INTO TEST(USER_ID, KJ_CODE, STATUS_CODE ) VALUES ('0010', 1234,2) ;
|
34
|
+
INSERT INTO TEST(USER_ID, KJ_CODE, STATUS_CODE ) VALUES ('0010', 1234,3) ;
|
35
|
+
INSERT INTO TEST(USER_ID, KJ_CODE, STATUS_CODE ) VALUES ('0010', 1234,1) ;
|
36
|
+
INSERT INTO TEST(USER_ID, KJ_CODE, STATUS_CODE ) VALUES ('0010', 4321,1) ;
|
37
|
+
INSERT INTO TEST(USER_ID, KJ_CODE, STATUS_CODE ) VALUES ('0010', 4321,1) ;
|
38
|
+
INSERT INTO TEST(USER_ID, KJ_CODE, STATUS_CODE ) VALUES ('0010', 4321,2) ;
|
39
|
+
INSERT INTO TEST(USER_ID, KJ_CODE, STATUS_CODE ) VALUES ('0010', 4321,3) ;
|
40
|
+
INSERT INTO TEST(USER_ID, KJ_CODE, STATUS_CODE ) VALUES ('0010', 4321,2) ;
|
41
|
+
```
|
42
|
+
|
43
|
+
|
19
44
|
そして、KJコードをGROUP BYで集約しつつKJコードをCOUNTした数と、
|
20
45
|
ステータスコード1~4のそれぞれのCOUNTした数をだし、
|
21
46
|
ステータスコード1~4それぞれのCOUNTした数とKJコードをCOUNTした数、
|
5
誤字脱字変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -18,8 +18,8 @@
|
|
18
18
|
このとき、ステータスコードには1~4のコードが登録されています。
|
19
19
|
そして、KJコードをGROUP BYで集約しつつKJコードをCOUNTした数と、
|
20
20
|
ステータスコード1~4のそれぞれのCOUNTした数をだし、
|
21
|
-
ステータスコード1~4それぞれのCOUNTした数とKJコードをCOUNTした数、
|
21
|
+
ステータスコード1~4それぞれのCOUNTした数とKJコードをCOUNTした数、
|
22
|
-
例えば下記のように比較します。
|
22
|
+
あるいはステータスコードの合計を例えば下記のように比較します。
|
23
23
|
|
24
24
|
ステータスコードの値1の合計数 > KJコードの合計数
|
25
25
|
ステータスコードの値1の合計数 < ステータスコードの値2の合計数
|
@@ -34,8 +34,8 @@
|
|
34
34
|
|
35
35
|
### 発生している問題
|
36
36
|
|
37
|
-
初歩的で申し訳ありませんが、一つのテーブルでGROUP BYしつつ
|
37
|
+
初歩的で申し訳ありませんが、一つのテーブルでGROUP BYしつつ、
|
38
|
-
よくわかっていません。
|
38
|
+
上記のように二つの列をカウントするような記述がよくわかっていません。
|
39
39
|
こういった場合は、やはり同一テーブルを副問い合わせなどするのでしょうか。
|
40
40
|
組み方、考え方をご教授頂けますと幸いです。
|
41
41
|
|
4
コードスニペットの追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -16,8 +16,7 @@
|
|
16
16
|
..................
|
17
17
|
|
18
18
|
このとき、ステータスコードには1~4のコードが登録されています。
|
19
|
-
そして、KJコードをGROUP BYで集約しつつ
|
19
|
+
そして、KJコードをGROUP BYで集約しつつKJコードをCOUNTした数と、
|
20
|
-
KJコードをCOUNTした数と、
|
21
20
|
ステータスコード1~4のそれぞれのCOUNTした数をだし、
|
22
21
|
ステータスコード1~4それぞれのCOUNTした数とKJコードをCOUNTした数、あるいはステータスコードの合計を
|
23
22
|
例えば下記のように比較します。
|
@@ -41,13 +40,14 @@
|
|
41
40
|
組み方、考え方をご教授頂けますと幸いです。
|
42
41
|
|
43
42
|
現在私自身は、下記のようなSQLの記述状況で手間取ってしまっています。
|
44
|
-
|
43
|
+
```SQL
|
45
44
|
SELECT
|
46
45
|
ユーザーID
|
47
|
-
KJコード
|
46
|
+
,KJコード
|
48
|
-
COUNT(KJコード)
|
47
|
+
,COUNT(KJコード)
|
49
|
-
COUNT(ステータスコード)
|
48
|
+
,COUNT(ステータスコード)
|
50
49
|
FROM
|
51
50
|
テストテーブル
|
52
51
|
GROUP BY
|
53
|
-
KJコード
|
52
|
+
KJコード
|
53
|
+
```
|
3
環境、現状の状況追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -2,6 +2,8 @@
|
|
2
2
|
不慣れな部分もありますが、なにとぞ皆様のお力をお借りできればと思いますので、
|
3
3
|
大変お手数ですが、ご回答のほどよろしくお願いいたします。
|
4
4
|
|
5
|
+
データベースの環境はOracle 11gとなります。
|
6
|
+
|
5
7
|
### 前提・実現したいこと
|
6
8
|
現在下記のようなテーブルにて、カウント数ごとのデータを取得したいと考えています。
|
7
9
|
具体的には、1つの下記のようにテーブルにカラムがあります。
|
@@ -29,9 +31,23 @@
|
|
29
31
|
ユーザーID、GROUP BYしたKJコード、CASEか何かで比較したステータスコード
|
30
32
|
のデータを取得したいです。
|
31
33
|
|
34
|
+
|
35
|
+
|
32
36
|
### 発生している問題
|
33
37
|
|
34
38
|
初歩的で申し訳ありませんが、一つのテーブルでGROUP BYしつつ上記のように二つの列をカウントするような記述が、
|
35
39
|
よくわかっていません。
|
36
40
|
こういった場合は、やはり同一テーブルを副問い合わせなどするのでしょうか。
|
37
|
-
組み方、考え方をご教授頂けますと幸いです。
|
41
|
+
組み方、考え方をご教授頂けますと幸いです。
|
42
|
+
|
43
|
+
現在私自身は、下記のようなSQLの記述状況で手間取ってしまっています。
|
44
|
+
|
45
|
+
SELECT
|
46
|
+
ユーザーID
|
47
|
+
KJコード
|
48
|
+
COUNT(KJコード)
|
49
|
+
COUNT(ステータスコード)
|
50
|
+
FROM
|
51
|
+
テストテーブル
|
52
|
+
GROUP BY
|
53
|
+
KJコード
|
2
誤字脱字変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
..................
|
15
15
|
|
16
16
|
このとき、ステータスコードには1~4のコードが登録されています。
|
17
|
-
そして、KJコードを
|
17
|
+
そして、KJコードをGROUP BYで集約しつつ
|
18
18
|
KJコードをCOUNTした数と、
|
19
19
|
ステータスコード1~4のそれぞれのCOUNTした数をだし、
|
20
20
|
ステータスコード1~4それぞれのCOUNTした数とKJコードをCOUNTした数、あるいはステータスコードの合計を
|
@@ -26,12 +26,12 @@
|
|
26
26
|
ステータスコードの値4の合計数 < KJコードの合計数
|
27
27
|
|
28
28
|
そのうえで最終的に、
|
29
|
-
ユーザーID、
|
29
|
+
ユーザーID、GROUP BYしたKJコード、CASEか何かで比較したステータスコード
|
30
30
|
のデータを取得したいです。
|
31
31
|
|
32
32
|
### 発生している問題
|
33
33
|
|
34
|
-
初歩的で申し訳ありませんが、一つのテーブルで
|
34
|
+
初歩的で申し訳ありませんが、一つのテーブルでGROUP BYしつつ上記のように二つの列をカウントするような記述が、
|
35
35
|
よくわかっていません。
|
36
36
|
こういった場合は、やはり同一テーブルを副問い合わせなどするのでしょうか。
|
37
37
|
組み方、考え方をご教授頂けますと幸いです。
|
1
誤字脱字変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -29,8 +29,6 @@
|
|
29
29
|
ユーザーID、GruoupByしたKJコード、CASEか何かで比較したステータスコード
|
30
30
|
のデータを取得したいです。
|
31
31
|
|
32
|
-
■■な機能を実装中に以下のエラーメッセージが発生しました。
|
33
|
-
|
34
32
|
### 発生している問題
|
35
33
|
|
36
34
|
初歩的で申し訳ありませんが、一つのテーブルでGrupuByしつつ上記のように二つの列をカウントするような記述が、
|