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 principais fornecedores de software mais vulneráveis, classificados pelo número total de vulnerabilidades de alto risco, no último ano.
 ###Tabelas: 
CREATE TABLE vulnerabilities (id INT, detection_date DATE, software_vendor VARCHAR(255), risk_score INT); INSERT INTO vulnerabilities (id, detection_date, software_vendor, risk_score) VALUES (1, '2022-01-01', 'VendorA', 9), (2, '2022-01-05', 'VendorB', 7), (3, '2022-01-10', 'VendorC', 8);
SELECT software_vendor, SUM(CASE WHEN risk_score >= 8 THEN 1 ELSE 0 END) as high_risk_vulnerabilities, RANK() OVER (ORDER BY SUM(CASE WHEN risk_score >= 8 THEN 1 ELSE 0 END) DESC) as rank FROM vulnerabilities WHERE detection_date >= DATE(NOW()) - INTERVAL '1 year' GROUP BY software_vendor HAVING rank <= 3;