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

รับค่าที่แตกต่างและนับใน MySQL


ในการรับค่าที่แตกต่างและนับได้ คุณสามารถใช้ประโยค GROUP BY ได้

ไวยากรณ์มีดังนี้

เลือก yourColumnName,count(*) เป็น anyAliasName จากกลุ่ม yourTableName โดย yourColumnName;

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

mysql> สร้างตาราง GroupByAndCountDemo -> ( -> ClientId int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY, -> ClientName varchar(100) -> ); แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.64 วินาที)

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

mysql> แทรกลงในค่า GroupByAndCountDemo(ClientName) ('John');Query OK, 1 แถวได้รับผลกระทบ (0.18 วินาที)mysql> แทรกลงในค่า GroupByAndCountDemo(ClientName) ('Carol'); Query OK, 1 แถวได้รับผลกระทบ ( 0.14 วินาที) mysql> แทรกลงในค่า GroupByAndCountDemo (ชื่อลูกค้า) ('แซม'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.15 วินาที) mysql> แทรกลงในค่า GroupByAndCountDemo (ชื่อลูกค้า) ('แซม'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว ( 0.16 วินาที) mysql> แทรกลงในค่า GroupByAndCountDemo (ชื่อลูกค้า) ('John'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.51 วินาที) mysql> แทรกลงในค่า GroupByAndCountDemo (ClientName) ('John'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ ( 0.15 วินาที) mysql> แทรกลงในค่า GroupByAndCountDemo (ชื่อลูกค้า) ('John'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที) mysql> แทรกลงในค่า GroupByAndCountDemo (ชื่อลูกค้า) ('Sam'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว ( 0.08 วินาที) mysql> แทรกลงในค่า GroupByAndCountDemo (ชื่อลูกค้า) ('แซม'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.47 วินาที) mysql> แทรกลงในค่า GroupByAndCountDemo (ชื่อลูกค้า) ('แซม'); ตกลง ตกลง 1 แถวได้รับผลกระทบ (0.09 วินาที)mysql> แทรกลงในค่า GroupByAndCountDemo (ชื่อลูกค้า) ('John'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที) mysql> แทรกลงในค่า GroupByAndCountDemo (ชื่อลูกค้า) ('John'); ตกลง ตกลง 1 แถวได้รับผลกระทบ (0.18 วินาที)mysql> แทรกลงในค่า GroupByAndCountDemo (ชื่อลูกค้า) ('John'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.10 วินาที) mysql> แทรกลงในค่า GroupByAndCountDemo (ชื่อลูกค้า) ('David'); ตกลง ตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที)mysql> แทรกลงในค่า GroupByAndCountDemo (ชื่อลูกค้า) ('Maxwell'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.17 วินาที) mysql> แทรกลงในค่า GroupByAndCountDemo (ชื่อลูกค้า) ('Maxwell'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.15 วินาที)

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

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

ผลลัพธ์ที่ได้จะเป็นดังนี้

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

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

mysql> เลือก ClientName,count(*) เป็น TotalCount จาก GroupByAndCountDemo ตามชื่อไคลเอนต์

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

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