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.
ეს მიდგომა საშუალებას აძლევს მიიღოთ სრული კატეგორიების სია და სწორი თანამშრომლების რაოდენობა.