ได้ คุณสามารถใช้ COUNT() และ DISTINCT ร่วมกันเพื่อแสดงจำนวนเฉพาะแถวที่แตกต่างกัน
ไวยากรณ์มีดังนี้ −
เลือก COUNT (DISTINCT yourColumnName) เป็น anyVariableName จาก yourTableName
เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง
แบบสอบถามเพื่อสร้างตารางมีดังนี้ −
mysql> สร้างตาราง CountDistinctDemo -> ( -> Id int ไม่ใช่ NULL AUTO_INCREMENT, -> ชื่อ varchar(20), -> คีย์หลัก (Id) -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (3.11 วินาที)ก่อน>แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้ −
mysql> แทรกลงในค่า CountDistinctDemo (ชื่อ) ('Carol'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.48 วินาที) mysql> แทรกลงในค่า CountDistinctDemo (ชื่อ) ('Bob'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ ( 0.43 วินาที) mysql> แทรกลงในค่า CountDistinctDemo (ชื่อ) ('Carol'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.26 วินาที) mysql> แทรกลงในค่า CountDistinctDemo (ชื่อ) ('John'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ ( 0.27 วินาที) mysql> แทรกลงในค่า CountDistinctDemo (ชื่อ) ('Bob'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.35 วินาที) mysql> แทรกลงในค่า CountDistinctDemo (ชื่อ) ('Carol'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ ( 0.98 วินาที)mysql> แทรกลงในค่า CountDistinctDemo (ชื่อ) ('John'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.26 วินาที) mysql> แทรกลงในค่า CountDistinctDemo (ชื่อ) ('Sam'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ ( 0.14 วินาที) mysql> แทรกลงในค่า CountDistinctDemo (ชื่อ) ('ไมค์'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.53 วินาที) mysql> แทรกลงในค่า CountDistinctDemo (ชื่อ) ('Carol'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ ( 0.31 วินาที) mysql> แทรกลงในค่า CountDistinctDemo (ชื่อ) ('David'); แบบสอบถาม ตกลง ได้รับผลกระทบ 1 แถว (0.40 วินาที)แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select
แบบสอบถามมีดังนี้
mysql> เลือก *จาก CountDistinctDemo;ต่อไปนี้เป็นผลลัพธ์
<ก่อนหน้า>+----+-------+| รหัส | ชื่อ |+---+-------+| 1 | แครอล || 2 | บ๊อบ || 3 | แครอล || 4 | จอห์น || 5 | บ๊อบ || 6 | แครอล || 7 | จอห์น || 8 | แซม || 9 | ไมค์ || 10 | แครอล || 11 | David |+----+-------+11 แถวในชุด (0.07 วินาที)
หากคุณไม่ได้ใช้ DISTINCT ฟังก์ชัน COUNT() จะให้จำนวนแถวทั้งหมด
แบบสอบถามมีดังนี้ −
mysql> เลือก count(Name) เป็น TotalName จาก CountDistinctDemo;
ต่อไปนี้เป็นผลลัพธ์ -
<ก่อนหน้า>+-----------+| รวมชื่อ |+-----------+| 11 |+-----------+1 แถวในชุด (0.04 วินาที)นี่คือแบบสอบถามที่จะใช้ COUNT() และ DISTINCT ร่วมกัน -
mysql> เลือก COUNT (ชื่อ DISTINCT) เป็น UniqueName จาก CountDistinctDemo
ต่อไปนี้เป็นผลลัพธ์
<ก่อนหน้า>+-----------+| UniqueName |+-----------+| 6 |+------------+1 แถวในชุด (0.00 วินาที)