Sobes.tech
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 JOIN tagab, et kõik salary_categories kategooriad 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.