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

MySQL Aggregate Function เพื่อค้นหาจำนวนครั้งที่เกิดขึ้น?


ในการนับจำนวนการเกิดขึ้นจากตาราง คุณสามารถใช้ฟังก์ชันการรวม COUNT() กับ GROUP BY ไวยากรณ์มีดังนี้ −

เลือก yourColumnName,COUNT(*) เป็น anyVariableName จาก yourTableName GROUP BY yourColumnName;

เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้ −

mysql> สร้างตาราง CountOccurrences -> ( -> CarId int ไม่ใช่ null auto_increment, -> CarName varchar(30), -> PRIMARY KEY(CarId) -> );Query OK, 0 แถวได้รับผลกระทบ (0.68 วินาที) 

แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้ −

mysql> แทรกลงในค่า CountOccurrences(CarName) ('Aston Martin'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.10 วินาที)mysql> แทรกลงในค่า CountOccurrences (CarName) ('BMW'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.20 วินาที) mysql> แทรกลงในค่า CountOccurrences (CarName) ('Aston Martin'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.15 วินาที) mysql> แทรกลงในค่า CountOccurrences (CarName) ('Honda'); แบบสอบถามตกลง 1 แถว ได้รับผลกระทบ (0.20 วินาที) mysql> แทรกลงในค่า CountOccurrences (CarName) ('BMW'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.11 วินาที) mysql> แทรกลงในค่า CountOccurrences (CarName) ('Audi'); แบบสอบถามตกลง 1 แถว ได้รับผลกระทบ (0.18 วินาที) mysql> แทรกลงในค่า CountOccurrences (CarName) ('Aston Martin'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.11 วินาที) mysql> แทรกลงในค่า CountOccurrences (CarName) ('Bugatti'); แบบสอบถามตกลง 1 แถวที่ได้รับผลกระทบ (0.22 วินาที)mysql> แทรกลงในค่า CountOccurrences (CarName) ('BMW'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.27 วินาที) mysql> แทรกลงในค่า CountOccurrences (CarName) ('Honda'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที) mysql> แทรกลงใน ค่า CountOccurrences(CarName) ('Audi');Query OK, 1 แถวได้รับผลกระทบ (0.13 วินาที)mysql> แทรกลงในค่า CountOccurrences(CarName) ('BMW'); Query OK, 1 แถวได้รับผลกระทบ (0.12 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้ −

mysql> เลือก *จาก CountOccurrences;

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+-------+--------------+| รหัสรถ | ชื่อรถ |+-------+-------------+| 1 | แอสตัน มาร์ติน || 2 | บีเอ็มดับเบิลยู || 3 | แอสตัน มาร์ติน || 4 | ฮอนด้า || 5 | บีเอ็มดับเบิลยู || 6 | ออดี้ || 7 | แอสตัน มาร์ติน || 8 | บูกัตติ || 9 | บีเอ็มดับเบิลยู || 10 | ฮอนด้า || 11 | ออดี้ || 12 | BMW |+-------+--------------+12 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อนับจำนวนการเกิดขึ้นของแต่ละค่าในคอลัมน์โดยใช้ count() กับ GROUP BY -

mysql> เลือก CarName,count(*) เป็น TotalCount จาก CountOccurrences -> จัดกลุ่มตาม CarName;

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+--------------+-----------+| ชื่อรถ | TotalCount |+-------------+-----------+| แอสตัน มาร์ติน | 3 || BMW | 4 || ฮอนด้า | 2 || Audi | 2 || บูกัตติ | 1 |+--------------+-----------+5 แถวในชุด (0.00 วินาที)