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: Qual é o valor total do contrato e o comprimento médio para cada contrato, particionado por fornecedor e ordenado por valor total do contrato em ordem decrescente?
 ###Tabelas: 
CREATE TABLE contract (id INT, vendor_id INT, value FLOAT, length INT, contract_date DATE); INSERT INTO contract (id, vendor_id, value, length, contract_date) VALUES (1, 1, 50000, 3, '2021-01-01'); INSERT INTO contract (id, vendor_id, value, length, contract_date) VALUES (2, 2, 25000, 2, '2022-02-01'); CREATE TABLE vendor (id INT, name VARCHAR(255)); INSERT INTO vendor (id, name) VALUES (1, 'Raytheon'); INSERT INTO vendor (id, name) VALUES (2, 'Northrop Grumman');
SELECT v.name as vendor, SUM(c.value) as total_contract_value, AVG(c.length) as avg_contract_length, ROW_NUMBER() OVER (PARTITION BY v.name ORDER BY SUM(c.value) DESC) as rank FROM contract c JOIN vendor v ON c.vendor_id = v.id GROUP BY v.name ORDER BY total_contract_value DESC;