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

MySQLで個別の値をカウントする方法は?


個別の値をカウントするには、集計関数count()で個別を使用できます。

構文は次のとおりです-

select count(distinct yourColumnName) as anyVariableName from yourTableName;

上記の概念を理解するために、テーブルを作成しましょう。以下は、テーブルを作成するためのクエリです-

mysql> create table DistinctDemo
   −> (
   −> Name varchar(200)
   −> );
Query OK, 0 rows affected (0.58 sec)

この例では、テーブルに重複するレコードを挿入してみましょう。レコードを挿入するためのクエリは次のとおりです-

mysql> insert into DistinctDemo values('John');
Query OK, 1 row affected (0.15 sec)

mysql> insert into DistinctDemo values('Sam');
Query OK, 1 row affected (0.17 sec)

mysql> insert into DistinctDemo values('John');
Query OK, 1 row affected (0.12 sec)

mysql> insert into DistinctDemo values('Johnson');
Query OK, 1 row affected (0.13 sec)

mysql> insert into DistinctDemo values('John');
Query OK, 1 row affected (0.10 sec)

mysql> insert into DistinctDemo values('Johnson');
Query OK, 1 row affected (0.12 sec)

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

mysql> insert into DistinctDemo values('Johnson');
Query OK, 1 row affected (0.10 sec)

selectステートメントを使用してすべてのレコードを表示します。すべてのレコードを表示するためのクエリは次のとおりです-

mysql> select *from DistinctDemo;

以下は、いくつかの重複レコードを表示する出力です-

+---------+
| Name    |
+---------+
| John    |
| Sam     |
| John    |
| Johnson |
| John    |
| Johnson |
| Sam     |
| Johnson |
+---------+
8 rows in set (0.00 sec)

これは、テーブルから個別の値をカウントするために使用できるクエリです-

mysql> select count(distinct Name) as DistinctValues from DistinctDemo;

以下は出力です-

+----------------+
| DistinctValues |
+----------------+
|              3 |
+----------------+
1 row in set (0.01 sec)

結果i3は、テーブルに3つの異なる値があることを示しています。


  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. MySQLCountDistinct値のプロセスは非常に遅いです。それを固定する方法は?

    プロセスを高速化するには、INDEXを使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable1905    (    FirstName varchar(20),    LastName varchar(20) ,    INDEX F_L_Name(FirstName,LastName)    ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入しま