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

ใช้ GROUP BY และ COUNT ในแบบสอบถาม MySQL เดียวเพื่อจัดกลุ่มระเบียนที่ซ้ำกันและแสดงค่าสูงสุดที่สอดคล้องกัน


เรามาสร้างตารางกันก่อน -

mysql> สร้างตาราง DemoTable -> ( -> ClientId int, -> Value int -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.79 วินาที)

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

mysql> แทรกลงในค่า DemoTable (10,678) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.15 วินาที) mysql> แทรกลงในค่า DemoTable (20,678) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า DemoTable ( 30,678);แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.09 วินาที)

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

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

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

<ก่อนหน้า>+----------+-------+| รหัสลูกค้า | ค่า |+----------+-------+| 10 | 678 || 20 | 678 || 30 | 678 |+----------+-------+3 แถวในชุด (0.00 วินาที)

นี่คือการสอบถาม GROUP จะไม่ทำงานหากใช้ COUNT -

mysql> เลือกจำนวน (tbl.ClientId), สูงสุด (tbl.ClientId) จาก DemoTable tbl -> จัดกลุ่มตามค่า

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

<ก่อนหน้า>+---------------------+-------------------+| count(tbl.ClientId) | max(tbl.ClientId) |+---------------------+-------------------+ | 3 | 30 |+--------------------------+-------------------+1 แถวในชุด ( 0.00 วินาที)