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

MySQL SUM()関数を使用して、列の異なる値のみの合計を計算するにはどうすればよいですか?


列の異なる値のみの合計を計算するには、列の名前とともに「DISTINCT」キーワードを使用できます。異なる値のSUM()関数を理解するために、次のレコードを持つ「employee_tbl」テーブルについて考えてみます-

mysql> SELECT * FROM employee_tbl;
+------+------+------------+--------------------+
| id   | name | work_date  | daily_typing_pages |
+------+------+------------+--------------------+
| 1    | John | 2007-01-24 | 250                |
| 2    | Ram  | 2007-05-27 | 220                |
| 3    | Jack | 2007-05-06 | 170                |
| 3    | Jack | 2007-04-06 | 100                |
| 4    | Jill | 2007-04-06 | 220                |
| 5    | Zara | 2007-06-06 | 300                |
| 5    | Zara | 2007-02-06 | 350                |
+------+------+------------+--------------------+
7 rows in set (0.00 sec)

ここで、上記の表に基づいて、値が異なるすべてのdialy_typing_pagesの合計を計算するとします。次に、次のコマンドを使用して計算できます-

mysql> SELECT SUM(DISTINCT daily_typing_pages)
    -> FROM employee_tbl;
+-------------------------+
| SUM(daily_typing_pages) |
+-------------------------+
|       1390              |
+-------------------------+
1 row in set (0.00 sec)

上記の結果セットは、DISTINCTキーワードを使用したMySQL SUM()が、異なるレコードのみの合計を計算することを示しています。つまり、値「220」が1回だけ追加されます。


  1. 与えられた値が3つしかない列を持つMySQLテーブルを作成するにはどうすればよいですか?

    これには、ENUMデータ型を使用します。まずテーブルを作成しましょう- mysql> create table DemoTable838(Color ENUM('RED','GREEN','BLUE')); Query OK, 0 rows affected (0.67 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable838 values('RED'); Query OK, 1 row affected (0.11 sec) mys

  2. MySQL WHERE句でSUM()関数の結果を使用できますか?

    MySQLのWHEREではなくHAVING句を使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable (    Name varchar(50),    Price int ); Query OK, 0 rows affected (0.79 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values('Chris',30); Query OK, 1 row affected (0.15