Sobes.tech
Middle

Hogyan készítsünk SQL lekérdezést a dolgozók számának megszámolására a fizetési kategóriákban, 0 értékkel a üres kategóriákhoz?

sobes.tech MI

Válasz az MI-től

Annak érdekében, hogy megszámolja az egyes fizetési kategóriákban lévő alkalmazottak számát, és 0-t jelenítsen meg azoknál a kategóriáknál, ahol nincs alkalmazott, LEFT JOIN-t kell használni a fizetési kategóriák táblával.

Tegyük fel, hogy két tábla van:

  • salary_categories (id, kategória_neve)
  • employees (id, név, salary_category_id)

Példa lekérdezés:

SELECT sc.kategória_neve, COUNT(e.id) AS alkalmazottak_száma
FROM salary_categories sc
LEFT JOIN employees e ON e.salary_category_id = sc.id
GROUP BY sc.kategória_neve
ORDER BY sc.kategória_neve;

Magyarázat:

  • A LEFT JOIN biztosítja, hogy minden salary_categories kategória szerepeljen az eredményben, még akkor is, ha nincs alkalmazott ebben a kategóriában.
  • A COUNT(e.id) megszámolja az alkalmazottak számát minden kategóriában; üres kategóriák esetén 0 lesz.

Ez a megközelítés lehetővé teszi a kategóriák teljes listájának és a helyes alkalmazotti számnak a lekérdezését.