Sobes.tech
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 JOIN užtikrina, kad visi salary_categories kategorijos 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.