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: Identificar astronautas que tenham completado missões com a maior duração, para cada agência espacial.
 ###Tabelas: 
CREATE TABLE AstronautMissions (MissionID INT, AstronautID INT, Agency VARCHAR(50), MissionDuration INT); INSERT INTO AstronautMissions (MissionID, AstronautID, Agency, MissionDuration) VALUES (1, 1, 'NASA', 300); INSERT INTO AstronautMissions (MissionID, AstronautID, Agency, MissionDuration) VALUES (2, 2, 'NASA', 400); INSERT INTO AstronautMissions (MissionID, AstronautID, Agency, MissionDuration) VALUES (3, 3, 'Roscosmos', 500); INSERT INTO AstronautMissions (MissionID, AstronautID, Agency, MissionDuration) VALUES (4, 4, 'Roscosmos', 200); INSERT INTO AstronautMissions (MissionID, AstronautID, Agency, MissionDuration) VALUES (5, 5, 'ESA', 250);
SELECT AstronautID, Agency, MAX(MissionDuration) AS Max_Mission_Duration, RANK() OVER (PARTITION BY Agency ORDER BY MAX(MissionDuration) DESC) AS Max_Mission_Duration_Rank FROM AstronautMissions GROUP BY AstronautID, Agency;