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: Encontrar os 3 principais ingredientes sustentáveis e seu uso total em pratos.
 ###Tabelas: 
CREATE TABLE menu (dish_id INT, dish_name VARCHAR(255), dish_type VARCHAR(255), dish_ingredients TEXT); INSERT INTO menu (dish_id, dish_name, dish_type, dish_ingredients) VALUES (1, 'Quinoa Salad', 'Vegetarian', 'quinoa, lettuce, tomato, cucumber, avocado'), (2, 'Chicken Sandwich', 'Non-Vegetarian', 'chicken, bread, lettuce, tomato'), (3, 'Tofu Stir Fry', 'Vegetarian', 'tofu, broccoli, carrot, bell pepper'), (4, 'Beef Burger', 'Non-Vegetarian', 'beef, bread, lettuce, tomato, cheese'), (5, 'Carrot Cake', 'Dessert', 'carrot, flour, sugar, eggs, cream cheese'); CREATE TABLE ingredients (ingredient_id INT, ingredient_name VARCHAR(255), is_sustainable BOOLEAN); INSERT INTO ingredients (ingredient_id, ingredient_name, is_sustainable) VALUES (1, 'quinoa', true), (2, 'lettuce', true), (3, 'tomato', true), (4, 'cucumber', true), (5, 'avocado', true), (6, 'chicken', false), (7, 'bread', false), (8, 'broccoli', true), (9, 'carrot', true), (10, 'bell pepper', true), (11, 'beef', false), (12, 'flour', false), (13, 'sugar', false), (14, 'eggs', false), (15, 'cream cheese', false);
SELECT i.ingredient_name, SUM(LENGTH(m.dish_ingredients) - LENGTH(REPLACE(m.dish_ingredients, i.ingredient_name, ''))) / LENGTH(i.ingredient_name) AS total_usage FROM ingredients i JOIN menu m ON FIND_IN_SET(i.ingredient_name, m.dish_ingredients) > 0 WHERE i.is_sustainable = true GROUP BY i.ingredient_name ORDER BY total_usage DESC LIMIT 3;