質問編集履歴
6
タイトル文章に誤りがありましたので変更しあmス
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
同一テーブルの結果が異なる
|
1
|
+
同一テーブルの結果が異なる行数をカウントしたい。
|
test
CHANGED
File without changes
|
5
誤字がありました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -4,14 +4,13 @@
|
|
4
4
|
テーブルの中は、本来はもっと多くのデータがありますが必要な部分だけ抜粋してみました。
|
5
5
|
|
6
6
|
抽出し、数えたいのは下記のような形です。
|
7
|
-
|
7
|
+
商品列(syohin)
|
8
|
-
フラグ列で0と1またはnull値が混じる
|
8
|
+
フラグ列flg(1~4)の中で0と1またはnull値が混じるデータがあるとします。
|
9
|
-
この表で、フラグの値が異なる
|
9
|
+
この表で、フラグの値が異なる"行"の数だけカウントしたいです。
|
10
10
|
(フラグの値が1だけでも、0だけでもない。 0と1とnullが混在する行)
|
11
11
|
■追記 nullの扱いについて。
|
12
12
|
全ての値がnullという行は存在しないと思いますが、
|
13
13
|
もし存在している場合は1でも0でもない、異なる行という扱いを取りたい。
|
14
|
-
|
15
14
|
|
16
15
|
下の表で行くと、結果はcount(syohin) 4
|
17
16
|
という結果となるのが理想です。
|
@@ -90,6 +89,8 @@
|
|
90
89
|
|
91
90
|
ご教示の程よろしくお願い致します。
|
92
91
|
|
92
|
+
再追記)
|
93
|
+
数えたい対象が列と行反対でしたので掲載し直しました。
|
94
|
+
回答してくださった方申し訳ございません。
|
93
95
|
|
94
96
|
|
95
|
-
|
4
a
test
CHANGED
File without changes
|
test
CHANGED
@@ -13,7 +13,7 @@
|
|
13
13
|
もし存在している場合は1でも0でもない、異なる行という扱いを取りたい。
|
14
14
|
|
15
15
|
|
16
|
-
下の表で行くと、結果はcount(
|
16
|
+
下の表で行くと、結果はcount(syohin) 4
|
17
17
|
という結果となるのが理想です。
|
18
18
|
|
19
19
|
-----zaikoテーブル-----
|
3
文法の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -34,7 +34,7 @@
|
|
34
34
|
カウントする前に一度表に出してみることとしました。
|
35
35
|
```ここに言語を入力
|
36
36
|
select
|
37
|
-
|
37
|
+
syohin
|
38
38
|
,flg1
|
39
39
|
,flg2
|
40
40
|
,flg3
|
@@ -66,7 +66,7 @@
|
|
66
66
|
上の表の条件は変えずにzaiko列を数えます。
|
67
67
|
```ここに言語を入力
|
68
68
|
select
|
69
|
-
count(
|
69
|
+
count(syohin)
|
70
70
|
from syohin
|
71
71
|
Where
|
72
72
|
flg1
|
@@ -80,7 +80,7 @@
|
|
80
80
|
+flg4 < 4;
|
81
81
|
```
|
82
82
|
|
83
|
-
結果:count(
|
83
|
+
結果:count(syohin)3
|
84
84
|
|
85
85
|
|
86
86
|
まとめると、
|
2
nullの扱いについて
test
CHANGED
File without changes
|
test
CHANGED
@@ -7,7 +7,12 @@
|
|
7
7
|
在庫列
|
8
8
|
フラグ列で0と1またはnull値が混じる列の行があるデータがあるとします。
|
9
9
|
この表で、フラグの値が異なる列の数だけカウントしたいです。
|
10
|
-
(フラグの値が1だけでも、0だけでもない 0と1が混在する行)
|
10
|
+
(フラグの値が1だけでも、0だけでもない。 0と1とnullが混在する行)
|
11
|
+
■追記 nullの扱いについて。
|
12
|
+
全ての値がnullという行は存在しないと思いますが、
|
13
|
+
もし存在している場合は1でも0でもない、異なる行という扱いを取りたい。
|
14
|
+
|
15
|
+
|
11
16
|
下の表で行くと、結果はcount(zaiko) 4
|
12
17
|
という結果となるのが理想です。
|
13
18
|
|
1
質問の仕方を修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,17 +1,18 @@
|
|
1
1
|
### 実現したいこと
|
2
2
|
|
3
3
|
下記のような、同一テーブル内の結果の値が異なる行を数えたいです。
|
4
|
-
テーブルの中は、本来はもっと多くのデータがあります。
|
4
|
+
テーブルの中は、本来はもっと多くのデータがありますが必要な部分だけ抜粋してみました。
|
5
|
+
|
5
6
|
抽出し、数えたいのは下記のような形です。
|
6
7
|
在庫列
|
7
8
|
フラグ列で0と1またはnull値が混じる列の行があるデータがあるとします。
|
8
9
|
この表で、フラグの値が異なる列の数だけカウントしたいです。
|
9
10
|
(フラグの値が1だけでも、0だけでもない 0と1が混在する行)
|
10
|
-
下の表で行くと、結果はcount(zaiko)4
|
11
|
+
下の表で行くと、結果はcount(zaiko) 4
|
11
|
-
という結果とな
|
12
|
+
という結果となるのが理想です。
|
12
|
-
|
13
13
|
|
14
14
|
-----zaikoテーブル-----
|
15
|
+
|
15
16
|
syohin/flg1/flg2/flg3/flg4
|
16
17
|
aaa/1/0/1/0
|
17
18
|
bbb/1/1/1/1
|
@@ -45,13 +46,19 @@
|
|
45
46
|
+flg3
|
46
47
|
+flg4 < 4;
|
47
48
|
```
|
48
|
-
|
49
|
+
こちらを実行すると
|
50
|
+
-----zaikoテーブル-----
|
51
|
+
syohin/flg1/flg2/flg3/flg4
|
52
|
+
aaa/1/0/1/0
|
53
|
+
ccc/1/1/0/0
|
54
|
+
dde/0/0/1/0
|
49
55
|
|
50
56
|
flg1~4の値を横に足し算し、足し算の結果が1以上4未満となった
|
51
|
-
行
|
57
|
+
行は取り出せたように見えました。
|
52
|
-
|
58
|
+
ただ1つ問題があり、nullがあるデータが取り出せませんでした。
|
53
59
|
|
54
60
|
②対象列のカウント
|
61
|
+
上の表の条件は変えずにzaiko列を数えます。
|
55
62
|
```ここに言語を入力
|
56
63
|
select
|
57
64
|
count(zaiko)
|
@@ -68,15 +75,11 @@
|
|
68
75
|
+flg4 < 4;
|
69
76
|
```
|
70
77
|
|
71
|
-
|
72
|
-
これで、テーブルのflg1~4の値がすべて1でも0でもない
|
73
|
-
|
78
|
+
結果:count(zaiko)3
|
74
79
|
|
75
80
|
|
76
81
|
まとめると、
|
77
|
-
・上記方法でテーブルのフラグの値が異なる行を
|
78
|
-
取り出すことは可能でしょうか。
|
79
|
-
・nullがある行も対象にしたいのですが、ど
|
82
|
+
・nullがある行も対象にしたいのですが、どうしたらnullも含まれるようになるのでしょうか。
|
80
83
|
・上の書き方はかなり冗長的で改善の余地があると思いますが
|
81
84
|
他にどのような抽出方法がありますでしょうか。
|
82
85
|
|