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回だけ追加されます。
-
与えられた値が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
-
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