GROUP BYステートメントに問題があります。
私はテーブルテストを持っています:

そして、次のselectステートメントを実行したいと思います。
select sum(a)
from TEST
group by a+b
結果は次のとおりです。
SUM(A)
3
1
3
動作しますが、理由はわかりません。a + bはGROUP BYステートメントでどのような表現をしますか?
ありがとう。
//編集、その巨大な画像でごめんなさい。変更します
これを試してください... SELECT 2 + NULLそしてあなたが何を得るかを見てください。
答えはそうではありません2、それはNULLです。
したがって、サンプルデータを使用して...
A | B | A+B
-----+-----+-----
1 | 0 | 1
2 | NULL| NULL
3 | 2 | 5
1 | NULL| NULL
NULL| 2 | NULL
whereisisの合計... AwhereisisA+Bの
合計...... whereisisの
合計......NULL3AA+B11AA+B53
あなたはこれを使用して回避することができますCOALESCE(a, 0) + COALESCE(b, 0)
あなたがそれが何であるかを知りたいのなら、あなたはそれにselect式itslefを与えることができます
select a+b,sum(a) from TEST group by a+b
任意の値とnullを加算している間はnullです。
これは理解に役立つはずです。
select a,a+b from test11;
+------+------+------+
| a | b | a+b |
+------+------+------+
| 1 | 2 | 3 |
| 2 | 2 | 4 |
| 2 | 3 | 5 |
| 4 | 3 | 7 |
| 3 | 4 | 7 |
| 0 | 7 | 7 |
+------+------+------+
DBは、(a + b)を含む列を追加して一時テーブルを作成し、その列でgroupbyを実行します。