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 orçamento total alocado para cada categoria, e qual é a porcentagem do orçamento total alocada para cada categoria em cada cidade?
 ###Tabelas: 
CREATE TABLE BudgetAllocation (Id INT, CityId INT, Category VARCHAR(50), Amount DECIMAL(10,2)); INSERT INTO BudgetAllocation (Id, CityId, Category, Amount) VALUES (1, 1, 'Transportation', 5000000), (2, 1, 'Infrastructure', 3000000), (3, 2, 'Transportation', 7000000), (4, 2, 'Infrastructure', 6000000);
SELECT CityId, Category, SUM(Amount) AS TotalBudget, SUM(Amount) OVER (PARTITION BY CityId) AS CityTotal, (SUM(Amount) OVER (PARTITION BY CityId)) * 100.0 / SUM(Amount) OVER () AS CategoryPercentage FROM BudgetAllocation GROUP BY CityId, Category;