Middle
Jak napisać zapytanie SQL do zliczania liczby pracowników w kategoriach wynagrodzeń z wyświetleniem 0 dla pustych kategorii?
sobes.tech AI
Odpowiedź od AI
Aby policzyć liczbę pracowników w każdej kategorii wynagrodzeń i wyświetlić 0 dla kategorii bez pracowników, należy użyć LEFT JOIN z tabelą kategorii wynagrodzeń.
Załóżmy, że istnieją dwie tabele:
salary_categories(id, nazwa_kategorii)employees(id, imię, salary_category_id)
Przykład zapytania:
SELECT sc.nazwa_kategorii, COUNT(e.id) AS liczba_pracowników
FROM salary_categories sc
LEFT JOIN employees e ON e.salary_category_id = sc.id
GROUP BY sc.nazwa_kategorii
ORDER BY sc.nazwa_kategorii;
Wyjaśnienie:
LEFT JOINgwarantuje, że wszystkie kategorie zsalary_categoriesbędą w wyniku, nawet jeśli nie ma w nich pracowników.COUNT(e.id)liczy liczbę pracowników w każdej kategorii; dla pustych kategorii wynik będzie 0.
Taki sposób pozwala uzyskać pełną listę kategorii z poprawnym liczeniem pracowników.