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 JOINbiztosítja, hogy mindensalary_categorieskategó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.