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 a distância total e o número de atrasos para cada rota, classificados pela distância total em ordem decrescente.
 ###Tabelas: 
CREATE TABLE routes (route_id INT, start_station VARCHAR(255), end_station VARCHAR(255), distance FLOAT, num_stops INT); CREATE TABLE delays (delay_id INT, route_id INT, delay FLOAT, delay_reason VARCHAR(255), delay_date DATE); INSERT INTO routes (route_id, start_station, end_station, distance, num_stops) VALUES (1, 'A1', 'B1', 12.5, 5), (2, 'B1', 'C1', 10.0, 3), (3, 'A1', 'C1', 21.5, 7); INSERT INTO delays (delay_id, route_id, delay, delay_reason, delay_date) VALUES (1, 1, 15.0, 'Construction', '2022-05-01'), (2, 2, 20.0, 'Accident', '2022-05-02'), (3, 1, 5.0, 'Weather', '2022-05-03');
SELECT route_id, SUM(distance) as total_distance, COUNT(*) as num_delays, ROW_NUMBER() OVER (ORDER BY SUM(distance) DESC) as rank FROM routes RIGHT JOIN delays ON routes.route_id = delays.route_id GROUP BY route_id;