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

列が重複/三重データを保持しているMySQLテーブルのレコードをどのようにカウントしますか?


次のstock_itemという名前のテーブルがあり、列の数量の値が重複しているとします。つまり、アイテム名「Notebooks」と「Pencil」の場合、列「Quantity」の値が重複しているのは「40」で、アイテムの場合は「Shirts」、「Shoes」です。 'および'Trousers'の3つの値29は、表に示されているように、列'quantity'によって保持されます。

mysql> Select * from stock_item;
+------------+----------+
| item_name  |quantity  |
+------------+----------+
| Calculator | 89       |
| Notebooks  | 40       |
| Pencil     | 40       |
| Pens       | 32       |
| Shirts     | 29       |
| Shoes      | 29       |
| Trousers   | 29       |
+------------+----------+
7 rows in set (0.00 sec)

次のクエリを使用すると、「数量」列で重複/三重の値の総数を見つけることができます。

mysql> Select COUNT(quantity) AS duplicate_triplicate
    -> from stock_item
    -> group by quantity having duplicate_triplicate> 1;

+----------------------+
| duplicate_triplicate |
+----------------------+
|                    3 |
|                    2 |
+----------------------+
2 rows in set (0.00 sec)

上記の結果は、列「数量」の値が3回繰り返され、値が2回繰り返されていることを示しています。


  1. そのテーブルの列値がMySQLの別のテーブルの列値と一致する場合にのみ、あるテーブルからデータを選択するにはどうすればよいですか?

    このために、EXISTSとともにサブクエリを使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable1    -> (    -> Id int,    -> SubjectName varchar(20)    -> ); Query OK, 0 rows affected (0.58 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1 val

  2. レコードが重複しているMySQLテーブルから単一の値を削除するにはどうすればよいですか?

    DELETEを使用してレコードを削除しますが、重複するレコードが複数ある場合は、次の構文のようにMySQLLIMITを使用して削除を制限します- 構文 delete from yourTableName where yourColumnName=yourValue limit 1; まずテーブルを作成しましょう- mysql> create table DemoTable    -> (    -> Amount int    -> ); Query OK, 0 rows affected (1.38 sec