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: Quem são os 3 principais produtores de blocos com a maior participação total que produziram pelo menos 100 blocos?
 ###Tabelas: 
CREATE TABLE block_producer_stakes (stake_id INT PRIMARY KEY, producer_address VARCHAR(100), stake_amount DECIMAL(20,2), stake_start_time TIMESTAMP, stake_end_time TIMESTAMP); CREATE TABLE block_production (block_id INT PRIMARY KEY, producer_address VARCHAR(100), block_time TIMESTAMP);
SELECT bp.producer_address, SUM(bp.stake_amount) AS total_stake FROM block_producer_stakes bp JOIN block_production bp2 ON bp.producer_address = bp2.producer_address WHERE bp.stake_end_time > bp2.block_time GROUP BY bp.producer_address HAVING COUNT(bp2.block_id) >= 100 ORDER BY total_stake DESC LIMIT 3;