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

一意の値の数を取得するためのMySQLクエリ?


列の一意の値をカウントするには、キーワードDISTINCTを使用する必要があります。それがどのように行われるかを理解するために、テーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです-

mysql> create table UniqueCountByIPAddress
   -> (
   -> Id int NOT NULL AUTO_INCREMENT,
   -> UserHits int,
   -> UserIPAddress varchar(50),
   -> PRIMARY KEY(Id)
   -> );
Query OK, 0 rows affected (0.69 sec)

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

mysql> insert into UniqueCountByIPAddress(UserHits,UserIPAddress) values(10,'127.0.0.1');
Query OK, 1 row affected (0.20 sec)
mysql> insert into UniqueCountByIPAddress(UserHits,UserIPAddress) values(10,'127.0.0.1');
Query OK, 1 row affected (0.20 sec)
mysql> insert into UniqueCountByIPAddress(UserHits,UserIPAddress) values(20,'127.0.0.1');
Query OK, 1 row affected (0.20 sec)
mysql> insert into UniqueCountByIPAddress(UserHits,UserIPAddress) values(20,'127.0.0.1');
Query OK, 1 row affected (0.17 sec)
mysql> insert into UniqueCountByIPAddress(UserHits,UserIPAddress) values(20,'127.0.0.2');
Query OK, 1 row affected (0.13 sec)
mysql> insert into UniqueCountByIPAddress(UserHits,UserIPAddress) values(20,'127.0.0.2');
Query OK, 1 row affected (0.20 sec)
mysql> insert into UniqueCountByIPAddress(UserHits,UserIPAddress) values(30,'127.0.0.2');
Query OK, 1 row affected (0.17 sec)
mysql> insert into UniqueCountByIPAddress(UserHits,UserIPAddress) values(30,'127.0.0.2');
Query OK, 1 row affected (0.28 sec)
mysql> insert into UniqueCountByIPAddress(UserHits,UserIPAddress) values(30,'127.0.0.2');
Query OK, 1 row affected (0.14 sec)

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

mysql> select *from UniqueCountByIPAddress;

以下は出力です-

+----+----------+--------------+
| Id | UserHits | UserIPAddress|
+----+----------+--------------+
|  1 |       10 | 127.0.0.1    |
|  2 |       10 | 127.0.0.1    |
|  3 |       20 | 127.0.0.1    |
|  4 |       20 | 127.0.0.1    |
|  5 |       20 | 127.0.0.2    |
|  6 |       20 | 127.0.0.2    |
|  7 |       30 | 127.0.0.2    |
|  8 |       30 | 127.0.0.2    |
|  9 |       30 | 127.0.0.2    |
+----+----------+--------------+

以下は、列「UserIPAddress」の個別の値をカウントするためのクエリです-

mysql> select UserHits,count(distinct UserIPAddress) as TotalHits
   -> from UniqueCountByIPAddress group by UserHits;

以下は出力です-

+----------+-----------+
| UserHits | TotalHits |
+----------+-----------+
|       10 |         1 |
|       20 |         2 |
|       30 |         1 |
+----------+-----------+
3 rows in set (0.05 sec)

  1. テーブル列の重複値の数をカウントするMySQLクエリ

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

  2. 特定の列値の単一のMySQLクエリで複数のカウントを取得する

    このために、特定の列のパラメーター値とともに集計関数sum()を使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable1790      (      Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,      Name varchar(20),      Score int      ); Query OK, 0 rows affected (0.94