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

ใช้ MySQL โดยที่ส่วนคำสั่งและลำดับโดย avg() เพื่อค้นหาค่าเฉลี่ยขององค์ประกอบแต่ละรายการที่ซ้ำกัน


สำหรับสิ่งนี้ ให้ใช้ have clause แทน where ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable1338 -> ( -> Name varchar(10), -> Score int -> );Query OK, 0 แถวได้รับผลกระทบ (1.54 วินาที)

แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก ที่นี่ เราได้ใส่ชื่อที่ซ้ำกันพร้อมคะแนน -

mysql> แทรกลงในค่า DemoTable1338 ('Chris',8); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.80 วินาที) mysql> แทรกลงในค่า DemoTable1338 ('Bob',4) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.20 วินาที )mysql> แทรกลงในค่า DemoTable1338 ('Bob',9); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.27 วินาที) mysql> แทรกลงในค่า DemoTable1338 ('Chris', 6); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.27 วินาที) mysql> แทรกลงในค่า DemoTable1338 ('David',5); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.23 วินาที) mysql> แทรกลงในค่า DemoTable1338 ('David',7); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.40 วินาที)

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

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

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

<ก่อนหน้า>+-------+-------+| ชื่อ | คะแนน |+-------+-------+| คริส | 8 || บ๊อบ | 4 || บ๊อบ | 9 || คริส | 6 || เดวิด | 5 || เดวิด | 7 |+-------+-------+6 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นคำค้นหาเพื่อค้นหาค่าเฉลี่ยขององค์ประกอบแต่ละรายการที่ซ้ำกัน -

mysql> เลือก Name,avg(Score) จาก DemoTable1338 -> จัดกลุ่มตามชื่อ -> มี avg(Score) <9.5 -> สั่งซื้อโดย avg(Score);

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

<ก่อนหน้า>+-------+-----------+| ชื่อ | เฉลี่ย(คะแนน) |+-------+-----------+| เดวิด | 6.0000 || บ๊อบ | 6.5000 || คริส | 7.0000 |+-------+-----------+3 แถวในชุด (0.00 วินาที)