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

การจัดกลุ่มและนับจำนวนใน MySQL ด้วย GROUP BY และ ORDER BY

การใช้ 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_namefrequency
Bob1
David3
John4

ตัวเลือกเพิ่มเติม:

  • ORDER BY frequency DESC เรียงตามจำนวนมากไปน้อย
  • HAVING COUNT(*) > 1 กรองเฉพาะที่ซ้ำ
  • WITH ROLLUP เพิ่มแถวรวม (Grand Total)