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

แบบสอบถาม MySQL เพื่อสรุปค่าของแถวและเรียงลำดับผลลัพธ์?


สำหรับสิ่งนี้ คุณสามารถใช้ GROUP BY ร่วมกับ ORDER BY clause ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable1499 -> ( -> StudentName varchar(20), -> StudentMarks int -> );ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.46 วินาที)

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

mysql> แทรกลงในค่า DemoTable1499 ('Chris', 56); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที) mysql> แทรกลงในค่า DemoTable1499 ('David', 78); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที )mysql> แทรกลงในค่า DemoTable1499 ('Bob',98); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.18 วินาที) mysql> แทรกลงในค่า DemoTable1499 ('Chris', 45); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า DemoTable1499 ('David',98); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า DemoTable1499 ('Bob',58); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.11 วินาที)

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

Mysql> เลือก * จาก DemoTable1499;

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

<ก่อนหน้า>+-------------+--------------+| ชื่อนักเรียน | StudentMarks |+-------------+--------------+| คริส | 56 || เดวิด | 78 || บ๊อบ | 98 || คริส | 45 || เดวิด | 98 || บ๊อบ | 58 |+-------------+-------------+6 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อสรุปค่าของแถวและเรียงลำดับผลลัพธ์ -

mysql> เลือก StudentName,sum(StudentMarks) เป็น TotalSum จาก DemoTable1499 -> จัดกลุ่มตาม StudentName -> เรียงลำดับตาม TotalSum desc;

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

<ก่อนหน้า>+-------------+----------+| ชื่อนักเรียน | ผลรวมทั้งหมด |+-------------+----------+| เดวิด | 176 || บ๊อบ | 156 || คริส | 101 |+-------------+----------+3 แถวในชุด (0.00 วินาที)