Middle
Πώς να δημιουργήσετε ένα ερώτημα SQL για τον υπολογισμό του αριθμού υπαλλήλων σε κατηγορίες μισθού με εμφάνιση 0 για κενές κατηγορίες;
sobes.tech AI
Απάντηση από AI
Για να μετρήσετε τον αριθμό των υπαλλήλων σε κάθε κατηγορία μισθού και να εμφανίσετε 0 για τις κατηγορίες χωρίς υπαλλήλους, πρέπει να χρησιμοποιήσετε LEFT JOIN με τον πίνακα των κατηγοριών μισθού.
Ας υποθέσουμε ότι υπάρχουν δύο πίνακες:
salary_categories(id, όνομα_κατηγορίας)employees(id, όνομα, salary_category_id)
Παράδειγμα ερωτήματος:
SELECT sc.όνομα_κατηγορίας, COUNT(e.id) AS αριθμός_υπαλλήλων
FROM salary_categories sc
LEFT JOIN employees e ON e.salary_category_id = sc.id
GROUP BY sc.όνομα_κατηγορίας
ORDER BY sc.όνομα_κατηγορίας;
Επεξήγηση:
- Το
LEFT JOINδιασφαλίζει ότι όλες οι κατηγορίες από τον πίνακαsalary_categoriesθα εμφανίζονται στο αποτέλεσμα, ακόμη και αν δεν υπάρχουν υπάλληλοι σε αυτές. - Το
COUNT(e.id)μετρά τον αριθμό των υπαλλήλων σε κάθε κατηγορία; για κενές κατηγορίες θα εμφανίζεται 0.
Αυτή η προσέγγιση επιτρέπει την πλήρη λίστα κατηγοριών με σωστό αριθμό υπαλλήλων.