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句で別名を付ければ、結果の列名も見やすくできます。複数条件にしたい場合は、ANDやORで条件を追加するだけで対応可能です。
-
MySQLで特定の行から単一の値だけを取得する方法(SELECT INTOの使い方)
MySQLで特定の条件に一致する行から、単一の値だけを変数に取得したい場合は、SELECT ... INTO 変数構文とWHERE句を組み合わせて使用します。この記事では、実際のテーブル作成から値の取得までの手順を順番に解説します。 1. サンプルテーブルを作成する まずは動作確認用のテーブルを作成しましょう。学生ID・氏名・点数を持つシンプルなテーブルを定義します。 mysql> create table DemoTable1896 ( StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, StudentName
-
MySQLでテーブルから特定の行を抽出するクエリの書き方
MySQLでは、WHERE句とORDER BY、LIMITを組み合わせることで、テーブルから条件に合致する特定の行だけを効率的に取得できます。本記事では、実際にサンプルテーブルを作成し、特定の行を抽出するクエリの実行手順をわかりやすく解説します。 1. サンプルテーブルの作成 まず、CREATE TABLE文を使ってサンプル用のテーブルを作成します。ここでは「Section(組)」と「StudentName(生徒名)」という2つのカラムを持つテーブルを用意しました。 mysql> create table DemoTable1972 ( Section char(1),