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: Exibir o número total de casos e o número de casos arquivados para cada escritório de advocacia, particionado por estado, ordenado pelo número total de casos?
 ###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 firm_id, state, COUNT(*) as total_cases, SUM(CASE WHEN case_status = 'dismissed' THEN 1 ELSE 0 END) as dismissed_cases FROM cases JOIN law_firms ON cases.firm_id = law_firms.firm_id GROUP BY firm_id, state ORDER BY total_cases DESC;