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

จะนับจำนวนครั้งของค่าที่ระบุในคอลัมน์ด้วยแบบสอบถาม MySQL เดียวได้อย่างไร


สำหรับสิ่งนี้ คุณสามารถใช้ GROUP BY clause ร่วมกับ IN() ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable -> ( -> Id int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY, -> Name varchar(100) -> );Query OK, 0 แถวได้รับผลกระทบ (0.87 วินาที)

แทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert -

mysql> แทรกลงในค่า DemoTable(Name) ('John');Query OK, 1 แถวได้รับผลกระทบ (0.23 วินาที)mysql> แทรกลงใน DemoTable(Name) values('Chris'); Query OK, 1 แถวได้รับผลกระทบ ( 0.12 วินาที) mysql> แทรกลงในค่า DemoTable (ชื่อ) ('David'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.23 วินาที) mysql> แทรกลงในค่า DemoTable (ชื่อ) ('คริส'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ ( 0.17 วินาที) mysql> แทรกลงในค่า DemoTable (ชื่อ) ('Chris'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.21 วินาที) mysql> แทรกลงในค่า DemoTable (ชื่อ) ('John'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ ( 0.10 วินาที) mysql> แทรกลงในค่า DemoTable (ชื่อ) ('Carol'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.20 วินาที) mysql> แทรกลงในค่า DemoTable (ชื่อ) ('แซม'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ ( 0.19 วินาที)

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

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

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+----+-------+| รหัส | ชื่อ |+---+-------+| 1 | จอห์น || 2 | คริส || 3 | เดวิด || 4 | คริส || 5 | คริส || 6 | จอห์น || 7 | แครอล || 8 | แซม |+----+-------+8 แถวในชุด (0.00 วินาที)

ตอนนี้ นับจำนวนครั้งที่เกิดขึ้นของค่าเฉพาะในคอลัมน์ด้วยแบบสอบถามเดียว -

mysql> เลือก Name,count(*) AS Occurrences from DemoTable -> where Name in('John','Chris') จัดกลุ่มตามชื่อ;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+-------+-------------+| ชื่อ | รายการ |+-------+-------------+| จอห์น | 2 || คริส | 3 |+-------+-------------+2 แถวในชุด (0.00 วินาที)