web-dev-qa-db-ja.com

mysqlに列の値を追加する方法

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

enter image description here

そして、これは私のクエリです-

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

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

id  total   maths   chemistry   physics
118     760     55  67  55

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

24
Trialcoder

合計は集計関数です。使用する必要はありません。これは簡単なクエリです-

select *,(maths + chemistry + physics ) AS total FROM `student`
63
Piyu

各生徒の合計点数を取得する必要がある場合、SUMは必要なものではありません。

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

仕事はうまくいきます。

10
hjpotter92

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

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

ヒント:フィールドの1つがNULLになる可能性がある場合は、 [〜#〜] coalesce [〜#〜] を使用してこれらをデフォルトに0にします、それ以外の場合、totalはNULLになります。

SELECT *, (
    COALESCE(maths, 0) +
    COALESCE(chemistry, 0) +
    COALESCE(physics, 0)
) AS total 
FROM `student`
6
digout

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

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

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

0
Benson Kiprono

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

0
Saikat Biswas

これを試して

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

できました。ありがとう

0