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: Qual é a quantidade total de minerais extraída por cada empresa e o número total de funcionários, contratados e locais de mineração para cada empresa?
 ###Tabelas: 
CREATE TABLE companies (id INT, name VARCHAR(50)); CREATE TABLE company_sites (id INT, company_id INT, site_id INT); CREATE TABLE mining_sites (id INT, name VARCHAR(50), location VARCHAR(50), company_id INT); CREATE TABLE employees (id INT, site_id INT, role VARCHAR(50), quantity INT); CREATE TABLE contractors (id INT, site_id INT, quantity INT); CREATE TABLE minerals_extracted (id INT, site_id INT, quantity INT);
SELECT c.name AS company, SUM(me.quantity) AS total_minerals_extracted, COUNT(DISTINCT ms.id) AS total_sites, SUM(e.quantity + c.quantity) AS total_workforce FROM companies c INNER JOIN company_sites cs ON c.id = cs.company_id INNER JOIN mining_sites ms ON cs.site_id = ms.id INNER JOIN (SELECT site_id, SUM(quantity) AS quantity FROM employees GROUP BY site_id) e ON ms.id = e.site_id INNER JOIN (SELECT site_id, SUM(quantity) AS quantity FROM contractors GROUP BY site_id) c ON ms.id = c.site_id INNER JOIN (SELECT site_id, SUM(quantity) AS quantity FROM minerals_extracted GROUP BY site_id) me ON ms.id = me.site_id GROUP BY c.name;