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

แบบสอบถาม MySQL เพื่อดึงค่าสะสมสูงสุด


สำหรับสิ่งนี้ ให้ใช้ฟังก์ชันรวม COUNT(*) พร้อมกับแบบสอบถามย่อย ใช้ GROUP BY ด้วย

ให้เราสร้างตาราง -

mysql> สร้างตาราง demo23−> (−> id int ไม่ใช่ null auto_increment คีย์หลัก,−> value1 int,−> value2 int−> );Query OK, 0 แถวได้รับผลกระทบ (1.65 วินาที)

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

mysql> แทรกลงในค่า demo23(value1,value2) (5,600) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.20 วินาที) mysql> แทรกลงในค่า demo23 (value1,value2) (20,800); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ ( 0.06 วินาที) mysql> แทรกลงในค่า demo23 (value1,value2) (7,400); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.20 วินาที) mysql> แทรกลงในค่า demo23 (value1,value2) (6,500); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ ( 0.17 วินาที) mysql> แทรกลงในค่า demo23(value1,value2) (10,300); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า demo23 (value1,value2) (11,500); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ ( 0.14 วินาที)

แสดงบันทึกจากตารางโดยใช้คำสั่ง select -

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

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

<ก่อนหน้า>+----+---------+-------+| id | value1 | value2 |+----+---------+-------+| 1 | 5 | 600 || 2 | 20 | 800 || 3 | 7 | 400 || 4 | 6 | 500 || 5 | 10 | 300 || 6 | 11 | 500 |+----+---------+-------+6 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นแบบสอบถามสำหรับยอดสะสม −

mysql> เลือก total_value, count(*) เป็น number_of_occurrences−> จาก (−> เลือก value1*value2 เป็น total_value−> จาก demo23−> ) t−> จัดกลุ่มโดย total_value−> เรียงลำดับตาม total_value desc−> จำกัด 1; 

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

<ก่อนหน้า>+-------------+----------------------+| Total_value | number_of_occurrences |+-------------+----------------------+| 16000 | 1 |+-------------+----------------------+1 แถวในชุด (0.00 วินาที)