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: Qual é a classificação de cada testemunha com base no número de casos em que testemunharam, particionados por etnia?
 ###Tabelas: 
CREATE TABLE public.witnesses (id SERIAL PRIMARY KEY, name VARCHAR(255), age INT, ethnicity VARCHAR(255), testimony_date DATE); CREATE TABLE public.cases (id SERIAL PRIMARY KEY, witness_id INT, case_number VARCHAR(255), case_date DATE, case_type VARCHAR(255), court_location VARCHAR(255)); CREATE TABLE public.verdicts (id SERIAL PRIMARY KEY, case_number VARCHAR(255), verdict_date DATE, verdict_type VARCHAR(255)); CREATE TABLE public.appeals (id SERIAL PRIMARY KEY, case_number VARCHAR(255), appeal_date DATE, appeal_outcome VARCHAR(255));
SELECT w.ethnicity, w.name, rank() over (partition by w.ethnicity order by count(c.id) desc) as rank FROM public.witnesses w JOIN public.cases c ON w.id = c.witness_id GROUP BY w.ethnicity, w.name;