Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

วิธีนับจำนวนแถวซ้ำทั้งหมดในคอลัมน์ของตาราง MySQL


ใช้ตาราง stock_item เดียวกับตัวอย่างก่อนหน้า คอลัมน์ quantity มีค่าซ้ำคือ 40 (2 ครั้ง) และ 29 (3 ครั้ง)

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(*) AS Total_duplicate_count
    -> FROM (SELECT item_name FROM stock_item
    -> GROUP BY quantity HAVING COUNT(quantity) > 1) AS X;
+-----------------------+
| Total_duplicate_count |
+-----------------------+
|                     2 |
+-----------------------+
1 row in set (0.00 sec)

คำอธิบาย: Subquery หาค่า quantity ที่ซ้ำ (COUNT > 1) แล้ว Outer query นับจำนวนกลุ่มนั้น ได้ 2 กลุ่ม (คือ 40 และ 29)