MySQL で複数の列の合計を取得する

Shraddha Paghdar 2023年6月20日
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 Paghdar avatar Shraddha Paghdar avatar

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