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: Encontre os 3 principais aplicativos descentralizados com o maior número de transações por dia na tabela 'DApps', particionados por dia e ordenados pelo número de transações em ordem decrescente.
 ###Tabelas: 
CREATE TABLE DApps (dapp_name VARCHAR(30), transaction_date DATE, num_transactions INT); INSERT INTO DApps (dapp_name, transaction_date, num_transactions) VALUES ('Uniswap', '2022-01-01', 1000), ('Sushiswap', '2022-01-01', 800), ('Compound', '2022-01-01', 700), ('Aave', '2022-01-01', 600), ('Yearn Finance', '2022-01-01', 500), ('Uniswap', '2022-01-02', 1200), ('Sushiswap', '2022-01-02', 900), ('Compound', '2022-01-02', 800);
SELECT transaction_date, dapp_name, num_transactions, RANK() OVER (PARTITION BY transaction_date ORDER BY num_transactions DESC) as rank FROM DApps WHERE num_transactions > 700 GROUP BY transaction_date, dapp_name, num_transactions HAVING rank <= 3;