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

หาค่าที่ซ้ำมากที่สุดและแสดงจำนวนใน MySQL

ใช้ COUNT(*) กับ GROUP BY แล้ว ORDER BY COUNT(*) DESC LIMIT 1

สร้างตารางตัวอย่าง

mysql> CREATE TABLE DemoTable (
    -> Name VARCHAR(100)
    -> );

เพิ่มข้อมูลตัวอย่าง

mysql> INSERT INTO DemoTable VALUES('John'), ('Sam'), ('John'), ('Mike'), ('John'), ('Sam'), ('Carol');

แสดงข้อมูล

mysql> SELECT * FROM DemoTable;

ผลลัพธ์:

+-------+
| Name  |
+-------+
| John  |
| Sam   |
| John  |
| Mike  |
| John  |
| Sam   |
| Carol |
+-------+

คำสั่งหาชื่อที่ซ้ำมากที่สุด

mysql> SELECT Name, COUNT(*) AS freq FROM DemoTable GROUP BY Name ORDER BY COUNT(*) DESC LIMIT 1;

ผลลัพธ์:

+------+------+
| Name | freq |
+------+------+
| John | 3    |
+------+------+

คำอธิบาย: GROUP BY จัดกลุ่มชื่อ | COUNT(*) นับในแต่ละกลุ่ม | ORDER BY COUNT(*) DESC เรียงมากไปน้อย | LIMIT 1 เอาอันดับ 1