Rumah > pangkalan data > tutorial mysql > Mengapa Adakah 'pilih * daripada kakitangan di mana gaji > purata(gaji);' Gagal, dan Bagaimana Saya Boleh Mendapatkan Kakitangan Berpendapatan Melebihi Purata?

Mengapa Adakah 'pilih * daripada kakitangan di mana gaji > purata(gaji);' Gagal, dan Bagaimana Saya Boleh Mendapatkan Kakitangan Berpendapatan Melebihi Purata?

DDD
Lepaskan: 2024-12-24 22:47:15
asal
354 orang telah melayarinya

Why Does purata(gaji);" Gagal, dan Bagaimanakah Saya Boleh Mencari Kakitangan Berpendapat Melebihi Purata Dengan Betul? " /> purata(gaji);" Gagal, dan Bagaimana Saya Boleh Mendapatkan Kakitangan Berpendapatan Melebihi Purata? " />

Peperiksaan Mendalam "ERROR 1111 (HY000): Penggunaan Fungsi Kumpulan Tidak Sah"

Pertanyaan ini bertujuan untuk mengenal pasti ahli kakitangan yang berpendapatan lebih daripada gaji purata dalam jadual kakitangan yang mengandungi atribut seperti ec, nama, kod, dob, dan gaji yang disediakan penyelesaian:

select* from staff where salary > avg(salary);
Salin selepas log masuk

gagal disebabkan penggunaan fungsi kumpulan yang tidak sah dalam klausa WHERE Fungsi agregat, seperti AVG, tidak boleh digunakan secara langsung dalam klausa WHERE melainkan ia terkandung dalam subkueri dalam HAVING. klausa atau senarai pilihan dan lajur yang diagregatkan ialah rujukan luar.

Betul Pendekatan:

Menggunakan Subkueri dalam Klausa WHERE:

select *
from staff
where salary > (select avg(salary) from staff)
Salin selepas log masuk

Menggunakan Klausa HAVING:

select deptid,COUNT(*) as TotalCount
from staff
group by deptid
having count(*) > 2
Salin selepas log masuk

Klausa HAVING membenarkan penapisan berdasarkan kumpulan atau nilai agregat, dan ia berkelakuan serupa dengan klausa WHERE dalam kes tanpa GROUP BY Dengan mengalihkan fungsi agregat ke klausa HAVING, pertanyaan mengenal pasti dengan betul kakitangan yang gajinya melebihi purata.

Atas ialah kandungan terperinci Mengapa Adakah 'pilih * daripada kakitangan di mana gaji > purata(gaji);' Gagal, dan Bagaimana Saya Boleh Mendapatkan Kakitangan Berpendapatan Melebihi Purata?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan