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 porcentagem de casos que são arquivados, para cada estado, ordenados da porcentagem mais alta para a mais baixa?
 ###Tabelas: 
CREATE TABLE law_firms (firm_id INT, name VARCHAR(50), state VARCHAR(20)); INSERT INTO law_firms (firm_id, name, state) VALUES (1, 'Law Firm A', 'NY'), (2, 'Law Firm B', 'CA'), (3, 'Law Firm C', 'NY'), (4, 'Law Firm D', 'IL'), (5, 'Law Firm E', 'CA'); CREATE TABLE cases (case_id INT, firm_id INT, case_status VARCHAR(10)); INSERT INTO cases (case_id, firm_id, case_status) VALUES (101, 1, 'open'), (102, 1, 'dismissed'), (103, 2, 'open'), (104, 3, 'open'), (105, 3, 'dismissed'), (106, 3, 'open'), (107, 3, 'dismissed'), (108, 4, 'open'), (109, 4, 'open'), (110, 5, 'open');
SELECT state, 100.0 * SUM(CASE WHEN case_status = 'dismissed' THEN 1 ELSE 0 END) / COUNT(*) as dismissed_percentage FROM cases JOIN law_firms ON cases.firm_id = law_firms.firm_id GROUP BY state ORDER BY dismissed_percentage DESC;