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

MySQL列に1回だけ表示される値の数を取得しますか?


列に1回だけ表示される値の数を取得するには、GROUPBYHAVINGを使用します。最初にテーブルを作成しましょう:

mysql> create table DemoTable
(
   Name varchar(20)
);
Query OK, 0 rows affected (0.55 sec)

以下は、挿入コマンドを使用してテーブルにいくつかのレコードを挿入するためのクエリです。

mysql> insert into DemoTable values('Larry');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values('Larry');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable values('Sam');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('Chris');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('Sam');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable values('Mike');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values('Sam');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable values('Larry');
Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable values('Mike');
Query OK, 1 row affected (0.32 sec)
mysql> insert into DemoTable values('Mike');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable values('Carol');
Query OK, 1 row affected (0.27 sec)
mysql> insert into DemoTable values('Robert');
Query OK, 1 row affected (0.27 sec)

以下は、selectコマンドを使用してテーブルのレコードを表示するためのクエリです。

mysql> select *from DemoTable;

これにより、次の出力が生成されます

+--------+
| Name |
+--------+
| Larry |
| Larry |
| Sam |
| Chris |
| Sam |
| Mike |
| Sam |
| Larry |
| Mike |
| Mike |
| Carol |
| Robert |
+--------+
12 rows in set (0.00 sec)

以下は、列に1回だけ表示される値、つまり「名前」列に1回だけ表示される名前の数をカウントするためのクエリです。

mysql> SELECT COUNT(Name)
FROM (
   SELECT Name
   FROM DemoTable
   GROUP BY Name
   HAVING COUNT(*) = 1
) AS APPEAR_FIRST_TIME;

これにより、次の出力が生成されます

+-------------+
| COUNT(Name) |
+-------------+
|           3 |
+-------------+
1 row in set (0.00 sec)

  1. 特定の列値の単一の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

  2. 対応する列の値からNO値のみのカウントを返すMySQLクエリ

    まずテーブルを作成しましょう- mysql> create table DemoTable1829      (      Name varchar(20),      isTopper ENUM('YES','NO')      ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTabl