Middle
Kuidas koostada SQL-päring, et arvutada töötajate arv palkade kategooriates ning näidata 0 tühjades kategooriates?
sobes.tech AI
Vastus AI-lt
Et saada iga kategooria töötajate arv ja kuvada 0 kategooriate puhul, kus töötajaid pole, tuleb kasutada LEFT JOIN-i koos palgakategooriate tabeliga.
Oletame, et on kaks tabelit:
salary_categories(id, kategooria_nimi)employees(id, nimi, salary_category_id)
Näide päringust:
SELECT sc.kategooria_nimi, COUNT(e.id) AS töötajate_arv
FROM salary_categories sc
LEFT JOIN employees e ON e.salary_category_id = sc.id
GROUP BY sc.kategooria_nimi
ORDER BY sc.kategooria_nimi;
Selgitus:
LEFT JOINtagab, et kõiksalary_categorieskategooriad ilmuvad tulemustes, isegi kui neil pole töötajaid.COUNT(e.id)loeb iga kategooria töötajate arvu; tühjade kategooriate puhul on tulemus 0.
See lähenemine võimaldab saada täieliku kategooriate nimekirja koos õige töötajate arvuga.