Cara menggunakan pertanyaan bersarang MySQL untuk melaksanakan analisis data yang kompleks
Dalam dunia dipacu data moden, analisis data telah menjadi bahagian yang amat diperlukan dalam semua lapisan masyarakat. Bagi bidang pangkalan data, MySQL ialah sistem pengurusan pangkalan data hubungan biasa, dan fungsi pertanyaan bersarangnya boleh meningkatkan fleksibiliti dan kecekapan analisis data. Artikel ini akan memperkenalkan cara menggunakan pertanyaan bersarang MySQL untuk melaksanakan analisis data yang kompleks dan menyediakan contoh kod yang sepadan.
Pertanyaan bersarang, seperti namanya, adalah untuk menyarangkan pernyataan pertanyaan dalam pernyataan pertanyaan. Boleh dikatakan bahawa pertanyaan bersarang ialah pernyataan pertanyaan bersarang dalam pernyataan pertanyaan lain. Dengan cara ini, kita boleh mendapatkan hasil pertanyaan sebelumnya dalam pertanyaan dalaman, dengan itu membolehkan analisis data yang lebih kompleks. Berikut menggunakan beberapa senario untuk menunjukkan penggunaan khusus.
Andaikan kita mempunyai pekerja meja pekerja, yang merangkumi medan seperti ID pekerja, nama dan ID jabatan. Kami ingin mengira bilangan pekerja di setiap jabatan. Berikut ialah kod yang dilaksanakan menggunakan pertanyaan bersarang:
SELECT department_id, COUNT(*) AS num_employees FROM employees GROUP BY department_id;
Dalam kod di atas, pertanyaan dalaman SELECT department_id, COUNT(*) AS num_employees FROM employees GROUP BY department_id
mengira bilangan pekerja dalam setiap jabatan , dan Set keputusan telah dikembalikan. Pertanyaan luaran menggunakan set hasil ini untuk memaparkan bilangan pekerja dalam setiap jabatan. . Kami ingin menanyakan pekerja bergaji tertinggi di setiap jabatan. Berikut ialah kod yang dilaksanakan menggunakan pertanyaan bersarang: SELECT department_id, COUNT(*) AS num_employees FROM employees GROUP BY department_id
统计了每个部门的员工数量,并返回了结果集。外部查询使用了这个结果集,用于展示每个部门的员工数量。
再假设我们有一个员工工资表employee_salaries,其中包括员工ID、工资和部门ID等字段。我们希望查询每个部门中工资最高的员工。下面是使用嵌套查询实现的代码:
SELECT department_id, employee_id, salary FROM employee_salaries WHERE (department_id, salary) IN ( SELECT department_id, MAX(salary) FROM employee_salaries GROUP BY department_id );
上述代码中,内部查询SELECT department_id, MAX(salary) FROM employee_salaries GROUP BY department_id
用于获取每个部门中工资最高的员工的工资。外部查询使用这个结果集,查询出对应的员工ID和工资,实现了查询每个部门中工资最高的员工的目标。
接下来,我们假设有一个员工信息表employee_info,其中包括员工ID、年龄和部门ID等字段。我们希望查询每个部门平均年龄超过30岁的员工。下面是使用嵌套查询实现的代码:
SELECT department_id, AVG(age) AS avg_age FROM employee_info GROUP BY department_id HAVING AVG(age) > 30;
上述代码中,内部查询SELECT department_id, AVG(age) AS avg_age FROM employee_info GROUP BY department_id
rrreee
SELECT department_id, MAX(gaji) FROM employee_gaji KUMPULAN OLEH department_id
digunakan untuk mendapatkan pekerja dengan gaji tertinggi dalam setiap gaji jabatan. Pertanyaan luaran menggunakan set keputusan ini untuk menanyakan ID pekerja dan gaji yang sepadan, mencapai matlamat untuk menyoal pekerja dengan gaji tertinggi dalam setiap jabatan.
Seterusnya, kami mengandaikan bahawa terdapat jadual maklumat pekerja employee_info, yang merangkumi medan seperti ID pekerja, umur, dan ID jabatan. Kami ingin menanyakan purata umur pekerja berumur lebih 30 tahun di setiap jabatan. Berikut ialah kod yang dilaksanakan menggunakan pertanyaan bersarang:
rrreeeDalam kod di atas, pertanyaan dalaman SELECT department_id, AVG(age) AS avg_age FROM employee_info GROUP BY department_id
digunakan untuk mengira purata umur bagi setiap jabatan. Pertanyaan luaran menggunakan set hasil ini untuk menapis jabatan dengan purata umur lebih 30 tahun dan mengembalikan hasilnya.
Atas ialah kandungan terperinci Cara menggunakan pertanyaan bersarang MySQL untuk melaksanakan analisis data yang kompleks. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!