質問編集履歴

6

タイトル文章に誤りがありましたので変更しあmス

2023/06/12 02:31

投稿

menmnemnapte
menmnemnapte

スコア1

test CHANGED
@@ -1 +1 @@
1
- 同一テーブルの結果が異なるをカウントしたい。
1
+ 同一テーブルの結果が異なる行数をカウントしたい。
test CHANGED
File without changes

5

誤字がありました。

2023/06/12 02:06

投稿

menmnemnapte
menmnemnapte

スコア1

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

2023/06/12 01:58

投稿

menmnemnapte
menmnemnapte

スコア1

test CHANGED
File without changes
test CHANGED
@@ -13,7 +13,7 @@
13
13
  もし存在している場合は1でも0でもない、異なる行という扱いを取りたい。
14
14
 
15
15
 
16
- 下の表で行くと、結果はcount(zaiko) 4
16
+ 下の表で行くと、結果はcount(syohin) 4
17
17
  という結果となるのが理想です。
18
18
 
19
19
  -----zaikoテーブル-----

3

文法の修正

2023/06/12 00:50

投稿

menmnemnapte
menmnemnapte

スコア1

test CHANGED
File without changes
test CHANGED
@@ -34,7 +34,7 @@
34
34
  カウントする前に一度表に出してみることとしました。
35
35
  ```ここに言語を入力
36
36
  select
37
- zaiko
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(zaiko)
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(zaiko)3
83
+ 結果:count(syohin)3
84
84
 
85
85
 
86
86
  まとめると、

2

nullの扱いについて

2023/06/12 00:44

投稿

menmnemnapte
menmnemnapte

スコア1

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

質問の仕方を修正

2023/06/12 00:22

投稿

menmnemnapte
menmnemnapte

スコア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
- ここで1つ問題があり、nullがあるデータが取り出せませんでした。
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