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 as 3 cidades com o maior consumo de água no Canadá em 2020, divididas por província.
 ###Tabelas: 
CREATE TABLE canada_water_usage (id INT, province VARCHAR(50), city VARCHAR(50), year INT, monthly_consumption FLOAT); INSERT INTO canada_water_usage (id, province, city, year, monthly_consumption) VALUES (1, 'Ontario', 'Toronto', 2020, 120), (2, 'Ontario', 'Ottawa', 2020, 110), (3, 'Quebec', 'Montreal', 2020, 130), (4, 'Quebec', 'Quebec City', 2020, 100);
SELECT province, city, monthly_consumption, RANK() OVER (PARTITION BY province ORDER BY monthly_consumption DESC) as rank FROM canada_water_usage WHERE year = 2020 GROUP BY province, city, monthly_consumption HAVING rank <= 3;