Middle
Kaip sukurti SQL užklausą darbuotojų skaičiui skaičiuoti atlyginimo kategorijose, rodyti 0 tuščiose kategorijose?
sobes.tech AI
Atsakymas iš AI
Norint suskaičiuoti darbuotojų skaičių kiekvienoje atlyginimo kategorijoje ir parodyti 0 kategorijoms, kuriose nėra darbuotojų, reikia naudoti LEFT JOIN su atlyginimo kategorijų lentele.
Tarkime, yra dvi lentelės:
salary_categories(id, kategorijos_pavadinimas)employees(id, vardas, salary_category_id)
Pavyzdinė užklausa:
SELECT sc.kategorijos_pavadinimas, COUNT(e.id) AS darbuotojų_skaičius
FROM salary_categories sc
LEFT JOIN employees e ON e.salary_category_id = sc.id
GROUP BY sc.kategorijos_pavadinimas
ORDER BY sc.kategorijos_pavadinimas;
Paaiškinimas:
LEFT JOINužtikrina, kad visisalary_categorieskategorijos bus rezultatuose, net jei jose nėra darbuotojų.COUNT(e.id)skaičiuoja kiekvienos kategorijos darbuotojų skaičių; tuščiose kategorijose rezultatas bus 0.
Šis požiūris leidžia gauti pilną kategorijų sąrašą su teisingu darbuotojų skaičiumi.