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

แก้ไขข้อผิดพลาด 1111 (HY000):การใช้ฟังก์ชันกลุ่มใน MySQL ไม่ถูกต้อง วิธีการใช้ฟังก์ชันการรวมอย่างถูกต้องด้วย where clause?


ในการใช้ฟังก์ชันการรวมกับ where clause ใน MySQL อย่างถูกต้อง ไวยากรณ์ดังต่อไปนี้ -

เลือก *จาก yourTableName โดยที่ yourColumnName> (เลือก AVG(yourColumnName) จาก yourTableName);

เพื่อให้เข้าใจแนวคิดข้างต้น ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้ −

mysql> สร้างตาราง EmployeeInformation -> ( -> EmployeeId int, -> EmployeeName varchar(20), -> EmployeeSalary int, -> EmployeeDateOfBirth datetime -> );Query OK, 0 แถวได้รับผลกระทบ (1.08 วินาที)

ตอนนี้คุณสามารถแทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้ −

mysql> แทรกลงในค่า EmployeeInformation (101,'John',5510,'1995-01-21');Query OK, 1 แถวได้รับผลกระทบ (0.13 วินาที)mysql> แทรกลงในค่า EmployeeInformation (102,'Carol', 5600,'1992-03-25');แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.56 วินาที)mysql> แทรกลงในค่า EmployeeInformation (103,'Mike',5680,'1991-12-25'); แบบสอบถามตกลง 1 แถว ได้รับผลกระทบ (0.14 วินาที) mysql> แทรกลงในค่า EmployeeInformation (104,'David',6000,'1991-12-25'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.23 วินาที) mysql> แทรกลงในค่า EmployeeInformation (105,'Bob ',7500,'1993-11-26');แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.16 วินาที)

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

mysql> เลือก *จากข้อมูลพนักงาน

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+------------+--------------+----------------+- --------------------+| รหัสพนักงาน | ชื่อพนักงาน | เงินเดือนพนักงาน | พนักงานวันที่เกิด |+-----------+--------------+----------------+--- --------------------+| 101 | จอห์น | 5510 | 1995-01-21 00:00:00 || 102 | แครอล | 5600 | 1992-03-25 00:00:00 || 103 | ไมค์ | 5680 | 1991-12-25 00:00:00 || 104 | เดวิด | 6000 | 1991-12-25 00:00:00 || 105 | บ๊อบ | 7500 | 2536-11-26 00:00:00 |+------------+-------------+---------- ------+---------------------+5 แถวในชุด (0.00 วินาที)

นี่คือวิธีที่ถูกต้องในการใช้ aggregate กับ where clause แบบสอบถามมีดังนี้ −

mysql> เลือก *จาก EmployeeInformation -> ตำแหน่ง EmployeeSalary> (เลือก AVG(EmployeeSalary) จาก EmployeeInformation);

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+------------+--------------+----------------+- --------------------+| รหัสพนักงาน | ชื่อพนักงาน | เงินเดือนพนักงาน | พนักงานวันที่เกิด |+-----------+--------------+----------------+--- --------------------+| 105 | บ๊อบ | 7500 | 2536-11-26 00:00:00 |+------------+-------------+---------- ------+---------------------+1 แถวในชุด (0.04 วินาที)