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: Liste os 3 principais usuários com a maior duração total de treino para cada tipo de treino.
 ###Tabelas: 
CREATE TABLE user_durations (user_id INT, workout_type VARCHAR(20), duration INT); INSERT INTO user_durations (user_id, workout_type, duration) VALUES (1, 'Running', 60), (1, 'Cycling', 90), (2, 'Running', 90), (2, 'Cycling', 75), (3, 'Running', 75), (3, 'Cycling', 60), (4, 'Running', 105), (4, 'Cycling', 90), (5, 'Running', 120), (5, 'Cycling', 105), (6, 'Running', 135), (6, 'Cycling', 120);
SELECT user_id, workout_type, SUM(duration) AS total_duration FROM user_durations GROUP BY user_id, workout_type ORDER BY total_duration DESC, workout_type; SELECT user_id, workout_type, total_duration FROM (SELECT user_id, workout_type, SUM(duration) AS total_duration, ROW_NUMBER() OVER (PARTITION BY workout_type ORDER BY SUM(duration) DESC) AS rank FROM user_durations GROUP BY user_id, workout_type) AS ranked_durations WHERE rank <= 3;