26

これは私のテーブルデータですStudent

ここに画像の説明を入力してください

そしてこれは私の質問です-

SELECT id, SUM( maths + chemistry + physics ) AS total, maths, chemistry, physics
FROM `student`

しかし、それは単一の行を投げています-

id  total   maths   chemistry   physics
118     760     55  67  55

すべてのIDに合計を適用したいのですが....どうすればこれを達成できますか?

4

7 に答える 7

69

Sumは集計関数です。あなたはそれを使う必要はありません。これは単純なクエリです-

select *,(maths + chemistry + physics ) AS total FROM `student`
于 2012-09-12T11:34:17.327 に答える
15

ヒント:フィールドの1つがNULLになる可能性がある場合は、COALESCEを使用してデフォルトで0にします。そうでない場合totalは、NULLになります。

SELECT *, (
    COALESCE(maths, 0) +
    COALESCE(chemistry, 0) +
    COALESCE(physics, 0)
) AS total 
FROM `student`
于 2018-04-25T12:47:37.163 に答える
11

各学生の合計点数を取得する必要がある場合は、それSUMはあなたが必要としているものではありません。

SELECT id,
    (maths+chemistry+physics) AS total,
    maths,
    chemistry,
    physics
FROM `student`

うまく仕事をします。

于 2012-09-12T11:31:42.417 に答える
9

SUMこの操作を使用する必要はありません。このクエリを試してください:

SELECT id, ( maths + chemistry + physics ) AS total, maths, chemistry, physics
FROM `student`
于 2012-09-12T11:32:42.977 に答える
1

MySQLのsum関数は、selectステートメントの列の値の合計を提供するという意味で機能します。クエリの行の値を合計する必要がある場合は、プラス(+)を使用するだけです。必要なのはこのクエリです。

SELECT id, (`maths` +`chemistry`+`physics`) AS `total`, `maths`, `chemistry`, `physics`
FROM `student`;

これにより、必要な結果が得られます。

于 2019-05-16T11:16:56.063 に答える
0

すべての集計関数は、rownameおよびgroupby操作で指定された行で機能します。集計関数のオプションではない個々の行に対する操作が必要です。

于 2014-07-23T10:50:20.930 に答える
0

これを試して

SELECT id, ( maths + chemistry + physics ) AS total, maths, chemistry, physics
FROM `student`

これで完了です。ありがとう

于 2018-09-21T08:19:49.280 に答える