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

แบบสอบถาม MySQL เพื่อรวมแถวหากรหัสเหมือนกันและแสดงค่าที่สอดคล้องกันสูงสุดจากคอลัมน์อื่น


สำหรับสิ่งนี้ ให้ใช้ฟังก์ชันรวม MAX() ร่วมกับส่วนคำสั่ง GROUP BY ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable ( Id int, Value1 int, Value2 int, Value3 int, Value4 int); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.61 วินาที)

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

mysql> แทรกลงในค่า DemoTable(Id,Value4) (100,30);เคียวรีตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที)mysql> แทรกลงในค่า DemoTable (Id,Value1,Value2,Value3) (100,20, 60,40);ตกลง สืบค้น 1 แถวได้รับผลกระทบ (0.14 วินาที)mysql> แทรกลงในค่า DemoTable(Id,Value2,Value3,Value4) (100,90,100,110) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.10 วินาที)

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

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

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

<ก่อนหน้า>+------+--------+---------+--------+-------+| รหัส | Value1 | Value2 | Value3 | ค่าที่ 4 |+------+ --------+---------+-------+-------+| 100 | NULL | NULL | NULL | 30 || 100 | 20 | 60 | 40 | NULL || 100 | NULL | 90 | 100 | 110 |+------+----------------------+---------+----------------------+-------+3 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อรวมแถวถ้ารหัสเหมือนกันและแสดงค่าที่สอดคล้องกันสูงสุดจากคอลัมน์อื่น ๆ -

mysql> เลือก Id,max(Value1) เป็น Value1,max(Value2) เป็น Value2,max(Value3) เป็น Value3,max(Value4) เป็น Value4 จาก DemoTablegroup ตาม Id;

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

<ก่อนหน้า>+------+--------+---------+--------+-------+| รหัส | Value1 | Value2 | Value3 | ค่าที่ 4 |+------+ --------+---------+-------+-------+| 100 | 20 | 90 | 100 | 110 |+------+----------------------+---------+----------------------+-------- +1 แถวในชุด (0.00 วินาที)