これは私のテーブルデータ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に合計を適用したいのですが....これを達成するにはどうすればよいですか?
合計は集計関数です。使用する必要はありません。これは簡単なクエリです-
select *,(maths + chemistry + physics ) AS total FROM `student`
各生徒の合計点数を取得する必要がある場合、SUM
は必要なものではありません。
SELECT id,
(maths+chemistry+physics) AS total,
maths,
chemistry,
physics
FROM `student`
仕事はうまくいきます。
この操作にSUM
を使用する必要はありません。このクエリを試してください:
SELECT id, ( maths + chemistry + physics ) AS total, maths, chemistry, physics
FROM `student`
ヒント:フィールドの1つがNULLになる可能性がある場合は、 [〜#〜] coalesce [〜#〜] を使用してこれらをデフォルトに0にします、それ以外の場合、total
はNULLになります。
SELECT *, (
COALESCE(maths, 0) +
COALESCE(chemistry, 0) +
COALESCE(physics, 0)
) AS total
FROM `student`
MySQLのsum関数は、selectステートメントの列の値の合計を提供するという意味で機能します。クエリの行の値を合計する必要がある場合は、プラス(+
)必要なのはこのクエリです:
SELECT id, (`maths` +`chemistry`+`physics`) AS `total`, `maths`, `chemistry`, `physics`
FROM `student`;
これにより、必要な結果が得られます。
すべての集計関数は、rownameおよびgroup by操作で指定された行で機能します。集計関数のオプションではない個々の行の操作が必要です。
これを試して
SELECT id, ( maths + chemistry + physics ) AS total, maths, chemistry, physics
FROM `student`
できました。ありがとう