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

MySQL COUNT()とDISTINCTを一緒に使用できますか?


はい、COUNT()とDISTINCTを一緒に使用して、個別の行のみのカウントを表示できます。

構文は次のとおりです-

SELECT COUNT(DISTINCT yourColumnName) AS anyVariableName FROM yourTableName;

上記の構文を理解するために、テーブルを作成しましょう。

テーブルを作成するためのクエリは次のとおりです-

mysql> create table CountDistinctDemo
   -> (
   -> Id int NOT NULL AUTO_INCREMENT,
   -> Name varchar(20),
   -> PRIMARY KEY(Id)
   -> );
Query OK, 0 rows affected (3.11 sec)

挿入コマンドを使用して、テーブルにいくつかのレコードを挿入します。クエリは次のとおりです-

mysql> insert into CountDistinctDemo(Name) values('Carol');
Query OK, 1 row affected (0.48 sec)

mysql> insert into CountDistinctDemo(Name) values('Bob');
Query OK, 1 row affected (0.43 sec)

mysql> insert into CountDistinctDemo(Name) values('Carol');
Query OK, 1 row affected (0.26 sec)

mysql> insert into CountDistinctDemo(Name) values('John');
Query OK, 1 row affected (0.27 sec)

mysql> insert into CountDistinctDemo(Name) values('Bob');
Query OK, 1 row affected (0.35 sec)

mysql> insert into CountDistinctDemo(Name) values('Carol');
Query OK, 1 row affected (0.98 sec)

mysql> insert into CountDistinctDemo(Name) values('John');
Query OK, 1 row affected (0.26 sec)

mysql> insert into CountDistinctDemo(Name) values('Sam');
Query OK, 1 row affected (0.14 sec)

mysql> insert into CountDistinctDemo(Name) values('Mike');
Query OK, 1 row affected (0.53 sec)

mysql> insert into CountDistinctDemo(Name) values('Carol');
Query OK, 1 row affected (0.31 sec)

mysql> insert into CountDistinctDemo(Name) values('David');
Query OK, 1 row affected (0.40 sec)

selectステートメントを使用して、テーブルのすべてのレコードを表示します。

クエリは次のとおりです。

mysql> select *from CountDistinctDemo;

以下は出力です。

+----+-------+
| Id | Name  |
+----+-------+
|  1 | Carol |
|  2 | Bob   |
|  3 | Carol |
|  4 | John  |
|  5 | Bob   |
|  6 | Carol |
|  7 | John  |
|  8 | Sam   |
|  9 | Mike  |
| 10 | Carol |
| 11 | David |
+----+-------+
11 rows in set (0.07 sec)

DISTINCTを使用しない場合、COUNT()関数はすべての行の数を示します。

クエリは次のとおりです-

mysql> select count(Name) as TotalName from CountDistinctDemo;

以下は出力です-

+-----------+
| TotalName |
+-----------+
|        11 |
+-----------+
1 row in set (0.04 sec)

COUNT()とDISTINCTを一緒に使用するためのクエリは次のとおりです-

mysql> SELECT COUNT(DISTINCT Name) as UniqueName FROM CountDistinctDemo;

以下は出力です

+------------+
| UniqueName |
+------------+
|          6 |
+------------+
1 row in set (0.00 sec)

  1. 単一のMySQLクエリで、ゼロ、NULL、およびゼロとNULLを除く個別の値をカウントします

    まずテーブルを作成しましょう- mysql> create table DemoTable(    Value int ); Query OK, 0 rows affected (1.35 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values(10); Query OK, 1 row affected (0.30 sec) mysql> insert into DemoTable values(NULL); Query OK, 1 row affected (

  2. MySQLクエリで「LIKEconcat()」を使用できますか?

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