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: Quais são os 3 principais contratantes de defesa em valor de contrato para cada ano de 2018 a 2020?
 ###Tabelas: 
CREATE TABLE defense_contracts (contractor VARCHAR(255), year INT, value FLOAT); INSERT INTO defense_contracts (contractor, year, value) VALUES ('Lockheed Martin', 2018, 50.0), ('Raytheon', 2018, 30.0), ('Boeing', 2018, 40.0), ('Northrop Grumman', 2018, 45.0), ('General Dynamics', 2018, 35.0), ('Lockheed Martin', 2019, 60.0), ('Raytheon', 2019, 35.0), ('Boeing', 2019, 45.0), ('Northrop Grumman', 2019, 50.0), ('General Dynamics', 2019, 40.0), ('Lockheed Martin', 2020, 60.0), ('Raytheon', 2020, 35.0), ('Boeing', 2020, 40.0), ('Northrop Grumman', 2020, 50.0), ('General Dynamics', 2020, 45.0);
SELECT contractor, year, SUM(value) as total_value FROM defense_contracts GROUP BY contractor, year ORDER BY year, total_value DESC LIMIT 3;