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

COUNT(*)とGROUP BY句を使ってMySQLの列内にある重複値を確認する方法

SQLでは、COUNT(*)GROUP BY句を組み合わせることで、特定の列に同じ値が何回繰り返されているか(重複の回数)を簡単に調べることができます。

COUNT(*)とGROUP BYによる重複チェックの基本

以下は、テーブル「Student」の「name」列に対してCOUNT(*)とGROUP BY句を使用した実行例です。

mysql> select count(*),name from student group by name;

+----------+---------+
| count(*) | name    |
+----------+---------+
| 1        | Aarav   |
| 2        | Gaurav  |
| 1        | Harshit |
+----------+---------+

3 rows in set (0.00 sec)

このクエリの結果セットを見ると、どの値が何回繰り返されているのかが一目でわかります。上記の例では、「Gaurav」という値が「name」列内で2回出現していることが確認できます。つまり、count(*)の値が2以上になっている行は、その値が列内で重複していることを意味します。

SELECT * で元データを確認して検証する

この結果は、以下のようにSELECT *クエリでテーブル全体のデータを表示することでも検証できます。

mysql> Select * from Student;

+------+---------+---------+-----------+
| Id   | Name    | Address | Subject   |
+------+---------+---------+-----------+
| 1    | Gaurav  | Delhi   | Computers |
| 2    | Aarav   | Mumbai  | History   |
| 15   | Harshit | Delhi   | Commerce  |
| 20   | Gaurav  | Jaipur  | Computers |
+------+---------+---------+-----------+

4 rows in set (0.00 sec)

全件取得の結果からも、Idが1と20の2つのレコードで名前が「Gaurav」になっていることがわかり、GROUP BYを使った集計結果と一致しています。

ポイントまとめ

  • COUNT(*)は、各グループの行数をカウントする集計関数です。
  • GROUP BY句を指定すると、その列の同じ値ごとに行がグループ化されます。
  • count(*)が2以上の値は、その列内でデータが重複していることを示します。
  1. MySQLでブール(BOOLEAN)列にデフォルト値1を設定・変更する方法

    MySQLでは、ALTER TABLE文とDEFAULT句を組み合わせることで、既存のブール(BOOLEAN)型の列にデフォルト値「1」を割り当てることができます。あらかじめ設定しておけば、INSERTコマンド実行時にその列へ値を明示的に指定しなくても、自動的に1が格納されます。 サンプルテーブルを作成する まずはテーブルを作成しましょう。 mysql> create table DemoTable (     isAdult int ); Query OK, 0 rows affected (1.39 sec) 既存の列にデフォルト値1を設定する

  2. MySQLのMAX()集計関数で列の最大値を取得する方法

    MySQLでは、列の最大値を取得するために、あらかじめ用意されている集計関数 MAX() を使用できます。この記事では、実際にテーブルを作成し、データを挿入して、MAX()関数で最大値を取得する手順を具体的に解説します。1. テーブルの作成まず、サンプルとなるテーブルを作成します。mysql> create table DemoTable ( Id int ); Query OK, 0 rows affected (0.96 sec)2. レコードの挿入次に、INSERTコマンドを使ってテーブルにいくつかのレコードを挿入します。mysql> insert into Demo