Sobes.tech
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.

ეს მიდგომა საშუალებას აძლევს მიიღოთ სრული კატეგორიების სია და სწორი თანამშრომლების რაოდენობა.