Abaixo está uma instrução que descreve uma tarefa de geração de SQL, combinada com uma entrada que fornece mais contexto sobre os esquemas de tabela disponíveis. Escreva o código SQL que responda adequadamente à solicitação
 ###Instrução: Determine o número total de funcionários e contratados por local de mineração e seus respectivos papéis.
 ###Tabelas: 
CREATE TABLE MiningSites (SiteID INT, SiteName VARCHAR(50), Location VARCHAR(50)); INSERT INTO MiningSites (SiteID, SiteName, Location) VALUES (1, 'Site A', 'New York'), (2, 'Site B', 'Ohio'), (3, 'Site C', 'Alberta'); CREATE TABLE Employees (EmployeeID INT, FirstName VARCHAR(50), LastName VARCHAR(50), JobTitle VARCHAR(50), EmploymentType VARCHAR(50), SiteID INT); INSERT INTO Employees (EmployeeID, FirstName, LastName, JobTitle, EmploymentType, SiteID) VALUES (1, 'John', 'Doe', 'Manager', 'Employee', 1), (2, 'Jane', 'Doe', 'Engineer', 'Contractor', 1), (3, 'Bob', 'Smith', 'Manager', 'Employee', 2), (4, 'Sarah', 'Jones', 'Engineer', 'Employee', 2), (5, 'Mike', 'Williams', 'Geologist', 'Contractor', 3);
SELECT s.SiteName, s.Location, e.EmploymentType, COUNT(DISTINCT e.EmployeeID) as RoleCount FROM Employees e INNER JOIN MiningSites s ON e.SiteID = s.SiteID GROUP BY s.SiteID, e.EmploymentType;