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

นับจำนวนค่าที่ซ้ำ (Common Elements) ด้วย COUNT() และ GROUP BY ใน MySQL

ใช้ COUNT() ร่วมกับ GROUP BY เพื่อนับจำนวนครั้งที่แต่ละค่าปรากฏ

สร้างตารางและเพิ่มข้อมูล

mysql> CREATE TABLE DemoTable (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Number INT
);
mysql> INSERT INTO DemoTable(Number) VALUES (10), (20), (20), (30), (10), (10);

ดูข้อมูล

mysql> SELECT * FROM DemoTable;
+----+--------+
| Id | Number |
+----+--------+
|  1 |     10 |
|  2 |     20 |
|  3 |     20 |
|  4 |     30 |
|  5 |     10 |
|  6 |     10 |
+----+--------+

คำสั่งนับจำนวนแต่ละค่า

mysql> SELECT Number, COUNT(Number) AS CommonElement
    -> FROM DemoTable
    -> GROUP BY Number;

ผลลัพธ์

+--------+---------------+
| Number | CommonElement |
+--------+---------------+
|     10 |             3 |
|     20 |             2 |
|     30 |             1 |
+--------+---------------+

คำอธิบาย:

  • GROUP BY Number — จัดกลุ่มแถวที่มี Number เท่ากัน
  • COUNT(Number) — นับจำนวนแถวในแต่ละกลุ่ม (ไม่นับ NULL)
  • เรียงตาม Number อัตโนมัติ (MySQL default)

เพิ่ม ORDER BY: ORDER BY CommonElement DESC เรียงจากซ้ำมากไปน้อย