1
resposta

Resolução Exercício - Estados com maior quantidade de clientes

WITH ClientesPorEstado AS (
    SELECT
        c.Estado AS estado
    ,	COUNT(id_cliente) AS quantidade_clientes
    FROM tabelaclientes AS c
    GROUP BY
        c.Estado
)

SELECT
    estado
,	quantidade_clientes
FROM ClientesPorEstado
;

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá, Carlos. Como vai?

Mais uma excelente entrega para fechar a sua sequência de exercícios com chave de ouro! O seu código para mapear a distribuição geográfica de consumidores usando a CTE ClientesPorEstado está perfeito, limpo e estruturado exatamente dentro dos padrões corporativos de Engenharia de Dados.

Analisando o seu Result Grid, a consulta executou com sucesso, trazendo os estados (SP, RJ, PR, RS, BA) e a respectiva contagem volumétrica de forma consolidada e sem erros.

Aproveitando o enunciado do exercício ("Estados com maior quantidade de clientes"), quero trazer uma observação técnica muito comum sobre regras de negócio e ordenação de dados que pode enriquecer ainda mais a sua query:

Dica de Negócio: Ordenação e Limitação (Top N)

Em ambientes reais de produção, a tabela de clientes costuma ter dados de todas as 27 unidades federativas do Brasil. Quando o time de negócios ou de marketing pede um relatório para identificar os estados com a maior quantidade de clientes, a expectativa implícita é ver um ranking ordenado do maior volume para o menor.

No seu código atual, os dados são exibidos na ordem em que o banco de dados os processou fisicamente na tabela. Para transformá-lo em um ranking de inteligência de mercado real, o ideal é adicionar uma cláusula de ordenação descrescente (ORDER BY ... DESC) na consulta final de saída.

Veja como o seu código de fechamento ganha ainda mais valor analítico com essa adição:

WITH ClientesPorEstado AS (
    SELECT
        c.Estado AS estado
    ,	COUNT(id_cliente) AS quantidade_clientes
    FROM tabelaclientes AS c
    GROUP BY
        c.Estado
)
SELECT
    estado
,	quantidade_clientes
FROM ClientesPorEstado
-- Garante que o estado com mais clientes fique no topo da lista
ORDER BY quantidade_clientes DESC;

Por que ordenar fora da CTE?

Uma boa prática de performance no SQL é deixar a cláusula ORDER BY sempre na query principal externa, e não dentro da subquery ou da CTE (a menos que você esteja usando comandos de paginação como o LIMIT ou TOP lá dentro). Ordenar os dados apenas no último passo poupa processamento do banco de dados, tornando a execução mais rápida e eficiente.

Parabéns pela consistência fantástica nos estudos e por compartilhar soluções tão limpas e bem documentadas com a comunidade do fórum!

Espero que possa ter lhe ajudado!