MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLで特定のセル(条件に一致する行)のみの合計値を取得する方法

MySQLで特定のセル、つまり条件に一致する行だけを対象に合計値を求めたい場合は、WHERE句で条件を指定し、集計関数のSUM()を使用します。ここでは、学生ごとの点数が登録されたテーブルを例に、特定の学生の点数合計を取得する手順を解説します。

サンプルテーブルの作成

まず、テーブルを作成します。

mysql> create table DemoTable1370
    -> (
    -> StudentName varchar(20),
    -> Marks int
    -> );
Query OK, 0 rows affected (0.87 sec)

テーブルへのデータ挿入

次に、INSERTコマンドを使ってレコードを挿入します。

mysql> insert into DemoTable1370 values('Adam Smith',56);
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable1370 values('Chris Brown',67);
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable1370 values('Adam Smith',69);
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable1370 values('David Miller',98);
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1370 values('John Smith',59);
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable1370 values('Adam Smith',79);
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable1370 values('Chris Brown',77);
Query OK, 1 row affected (0.17 sec)

登録データの確認

SELECT文ですべてのレコードを表示してみましょう。

mysql> select * from DemoTable1370;

実行結果は以下のとおりです。

+--------------+-------+
| StudentName  | Marks |
+--------------+-------+
| Adam Smith   |    56 |
| Chris Brown  |    67 |
| Adam Smith   |    69 |
| David Miller |    98 |
| John Smith   |    59 |
| Adam Smith   |    79 |
| Chris Brown  |    77 |
+--------------+-------+
7 rows in set (0.00 sec)

特定のセルのみの合計を取得するクエリ

ここで本題です。WHERE句で「StudentName = 'Adam Smith'」という条件を指定し、該当する行のMarks列だけをSUM()で合計します。

mysql> select sum(Marks) AS Total from DemoTable1370 where StudentName='Adam Smith';

実行すると、Adam Smithの点数だけを合計した次の結果が得られます。

+-------+
| Total |
+-------+
|   204 |
+-------+
1 row in set (0.00 sec)

まとめ

このように、SUM()WHEREを組み合わせることで、テーブル全体ではなく特定の条件に一致する行(セル)のみを対象に合計値を簡単に算出できます。AS句で別名を付ければ、結果の列名も見やすくできます。複数条件にしたい場合は、ANDORで条件を追加するだけで対応可能です。

  1. MySQLで特定の行から単一の値だけを取得する方法(SELECT INTOの使い方)

    MySQLで特定の条件に一致する行から、単一の値だけを変数に取得したい場合は、SELECT ... INTO 変数構文とWHERE句を組み合わせて使用します。この記事では、実際のテーブル作成から値の取得までの手順を順番に解説します。 1. サンプルテーブルを作成する まずは動作確認用のテーブルを作成しましょう。学生ID・氏名・点数を持つシンプルなテーブルを定義します。 mysql> create table DemoTable1896 ( StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, StudentName

  2. MySQLでテーブルから特定の行を抽出するクエリの書き方

    MySQLでは、WHERE句とORDER BY、LIMITを組み合わせることで、テーブルから条件に合致する特定の行だけを効率的に取得できます。本記事では、実際にサンプルテーブルを作成し、特定の行を抽出するクエリの実行手順をわかりやすく解説します。 1. サンプルテーブルの作成 まず、CREATE TABLE文を使ってサンプル用のテーブルを作成します。ここでは「Section(組)」と「StudentName(生徒名)」という2つのカラムを持つテーブルを用意しました。 mysql> create table DemoTable1972 ( Section char(1),