1

GROUP BYステートメントに問題があります。

私はテーブルテストを持っています: ここに画像の説明を入力してください

そして、次のselectステートメントを実行したいと思います。

select sum(a)
from TEST
group by a+b

結果は次のとおりです。

SUM(A)
3
1
3

動作しますが、理由はわかりません。a + bはGROUP BYステートメントでどのような表現をしますか?

ありがとう。

//編集、その巨大な画像でごめんなさい。変更します

4

3 に答える 3

4

これを試してください... 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の 合計......NULL3
AA+B11
AA+B53


あなたはこれを使用して回避することができますCOALESCE(a, 0) + COALESCE(b, 0)

于 2012-05-30T08:07:44.033 に答える
1

あなたがそれが何であるかを知りたいのなら、あなたはそれにselect式itslefを与えることができます

select  a+b,sum(a) from TEST group by a+b

任意の値とnullを加算している間はnullです。

于 2012-05-30T08:08:46.017 に答える
0

これは理解に役立つはずです。

       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を実行します。

于 2012-05-30T08:18:45.340 に答える