การใช้ GROUP BY เพื่อนับความถี่ (Frequency)
รวม GROUP BY กับ COUNT(*) และ ORDER BY เพื่อแสดงรายการพร้อมจำนวนเรียงลำดับ
ตัวอย่าง
CREATE TABLE demo7 (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
first_name VARCHAR(50)
);
INSERT INTO demo7 (first_name) VALUES
('John'), ('David'), ('John'), ('Bob'),
('David'), ('David'), ('John'), ('John');
SELECT first_name, COUNT(*) AS frequency
FROM demo7
GROUP BY first_name
ORDER BY first_name;
ผลลัพธ์
| first_name | frequency |
|---|---|
| Bob | 1 |
| David | 3 |
| John | 4 |
ตัวเลือกเพิ่มเติม:
ORDER BY frequency DESCเรียงตามจำนวนมากไปน้อยHAVING COUNT(*) > 1กรองเฉพาะที่ซ้ำWITH ROLLUPเพิ่มแถวรวม (Grand Total)