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: Encontre o número de tipos de artefato distintos por site e seus períodos históricos.
 ###Tabelas: 
CREATE TABLE excavation_sites (site_id INT, site_name VARCHAR(255)); CREATE TABLE artifacts (artifact_id INT, site_id INT, artifact_type VARCHAR(255), historical_period VARCHAR(255)); INSERT INTO excavation_sites (site_id, site_name) VALUES (1, 'site_a'), (2, 'site_b'), (3, 'site_c'); INSERT INTO artifacts (artifact_id, site_id, artifact_type, historical_period) VALUES (1, 1, 'Pottery', 'Iron Age'), (2, 1, 'Bone Fragments', 'Stone Age'), (3, 2, 'Pottery', 'Iron Age'), (4, 2, 'Coins', 'Medieval'), (5, 3, 'Bone Fragments', 'Stone Age'), (6, 3, 'Bronze Tools', 'Bronze Age');
SELECT site_name, historical_period, COUNT(DISTINCT artifact_type) as artifact_count FROM excavation_sites s JOIN artifacts a ON s.site_id = a.site_id GROUP BY site_name, historical_period;