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: Calcular a média móvel de usuários totais para os últimos 3 meses para cada aplicativo descentralizado?
 ###Tabelas: 
CREATE TABLE decentralized_applications (dapp_id INT, name VARCHAR(255), category VARCHAR(255), total_users INT, monthly_data_date DATE); INSERT INTO decentralized_applications (dapp_id, name, category, total_users, monthly_data_date) VALUES (1, 'Uniswap', 'DEX', 500000, '2022-01-01'), (2, 'SushiSwap', 'DEX', 300000, '2022-01-01'), (3, 'Uniswap', 'DEX', 550000, '2022-02-01'), (4, 'SushiSwap', 'DEX', 350000, '2022-02-01');
SELECT dapp_id, name, category, total_users, AVG(total_users) OVER (PARTITION BY dapp_id ORDER BY monthly_data_date ROWS BETWEEN 2 PRECEDING AND CURRENT ROW) AS moving_avg_total_users FROM decentralized_applications WHERE name IN ('Uniswap', 'SushiSwap') ORDER BY monthly_data_date DESC;