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 os 3 projetos de 'Fornecimento de Água' mais caros que iniciaram em 2018 ou posteriormente.
 ###Tabelas: 
CREATE TABLE Projects (id INT, name VARCHAR(50), category VARCHAR(50), cost FLOAT, year_started INT, year_completed INT, status VARCHAR(20)); INSERT INTO Projects (id, name, category, cost, year_started, year_completed, status) VALUES (1, 'Dam Reconstruction', 'Water Supply', 500000, 2018, 2019, 'Completed'), (2, 'Wastewater Treatment', 'Waste Management', 600000, 2018, 2020, 'Completed'), (3, 'Road Pavement', 'Transportation', 700000, 2016, 2018, 'Completed'), (4, 'Bridge Construction', 'Transportation', 800000, 2018, 2019, 'Completed'), (5, 'Tunnel Construction', 'Transportation', 900000, 2019, 2021, 'Completed');
SELECT * FROM (SELECT *, RANK() OVER (PARTITION BY category ORDER BY cost DESC) rnk FROM Projects WHERE year_started >= 2018 AND category = 'Water Supply') t WHERE rnk <= 3;