MySQL で複数の列の合計を取得する
今日の投稿では、MySQL で複数の列を合計する方法を学びます。
MySQL で複数の列を合計する
集計関数 SUM()
を使用して、セット内の合計値を計算できます。 SUM()
関数による計算では、NULL
値は考慮されません。
SUM()
集計関数の構文は次のとおりです。
SELECT SUM(aggregate_expression)
FROM table_name
WHERE conditions;
aggregate_expression
パラメータは、合計を計算するための列または式を指定します。
レコードを取得したいテーブルは table_name
で指定します。 FROM
句には、少なくとも 1つのテーブルをリストする必要があります。
WHERE
の 条件
はオプションです。 レコードが認識されるためには、WHERE
ステートメントに記載されているように、特定の要件を満たす必要があります。
MySQL クエリで CASE
ステートメントを使用して、いくつかの sum
列を選択し、それらを個別の列に表示する必要があります。 いずれかの条件が指定されたステートメントを満たす場合、MySQL の CASE()
関数を使用して、条件を渡すことによって値を決定します。 それ以外の場合は、ステートメントを else
セクションに返します。
条件が満たされると、読み取りを停止し、出力を返します。 構文は次のとおりです。
SELECT
SUM( CASE WHEN column_name1=value_1 THEN column_name2 END ) AS alias_column_1,
SUM( CASE WHEN column_name1=value_2 THEN column_name2 END ) AS alias_column_2,
FROM yourTableName;
前の概念をよりよく理解するために、次の例を検討してください。
-- Total Bonus
SELECT
SUM(bonus) as TotalBonus
FROM
EmployeeBonus;
-- Total Marks
SELECT
SUM(maths+physics+chemistry) as TotalMarks, studentId
FROM
StudentMarks
GROUP BY
studentId;
SELECT
SUM(CASE WHEN subject='Maths' THEN marks END) AS 'Maths TOTAL SCORE',
SUM(CASE WHEN subject='Physics' THEN marks END) AS 'Physics TOTAL SCORE',
SUM(CASE WHEN subject='Chemistry' THEN marks END) AS 'Chemistry TOTAL SCORE'
FROM StudentMarks;
上記の例では、企業がこれまでに支払ったボーナスの合計を計算しています。 2 番目の操作では、すべてのトピックにわたってすべての学生の累積成績を取得することを目指します。
上記のコード行を、MySQL と互換性のあるブラウザーで実行します。 次の結果が表示されます。
+------------+
| TotalBonus |
+------------+
| $123445663 |
+------------+
1 row in set (0.00 sec)
+------------+-----------+
| TotalMarks | studentId |
+------------+-----------+
| 278 | 1 |
| 256 | 2 |
| 289 | 3 |
+------------+-----------+
3 row in set (0.01 sec)
Shraddha is a JavaScript nerd that utilises it for everything from experimenting to assisting individuals and businesses with day-to-day operations and business growth. She is a writer, chef, and computer programmer. As a senior MEAN/MERN stack developer and project manager with more than 4 years of experience in this sector, she now handles multiple projects. She has been producing technical writing for at least a year and a half. She enjoys coming up with fresh, innovative ideas.
LinkedIn