21st Aug 2025 12 minutos de leitura Análise de crescimento de vendas com a folha de referência do analista de dados: Parte 2 Scott Davis análise de dados Índice Visão geral Como preparar os dados Análise de clientes Análise de produtos Resumo Bem-vindo à Parte 2 de nossa jornada de análise de dados de vendas. Usando a Folha de dicas de SQL para análise de dados, vamos nos aprofundar nas principais métricas e aplicar consultas SQL para descobrir insights sobre consumidores e produtos. Vamos aprimorar essas habilidades em SQL! Com base em meu artigo anterior, Análise de vendas reais com a folha de referência do analista, este artigo explora métricas de vendas adicionais usando o mesmo conjunto de dados. Vamos nos concentrar em diferentes casos de uso envolvendo consumidores e produtos, continuando a seguir as orientações da Folha de dicas de SQL para análise de dados do site LearnSQL.com.br. Neste artigo, abordaremos três elementos principais: tópicos básicos de SQL, identificação de padrões de métricas e direcionamento para seções relevantes da Folha de consulta de SQL para análise de dados para referência rápida. Usando um conjunto de dados do Tableau que mostra dados de vendas de artigos para o lar, responderemos a perguntas comerciais relacionadas a clientes e produtos. O objetivo é praticar o reconhecimento de padrões de relatórios e a aplicação de consultas SQL para resolver essas questões. Embora o conjunto de dados possa evoluir, o foco deve ser o processo e as etapas lógicas na elaboração de consultas O que você aprenderá: Reconhecer padrões em consultas SQL, análise de métricas e referências a planilhas Aplicar esses padrões em seu trabalho diário com relatórios e SQL Visão geral Este artigo está dividido em duas seções: análise de clientes e análise de produtos, abrangendo KPIs, tendências e vários métodos de segmentação. Para responder às perguntas, aplico técnicas de SQL do artigo anterior, incluindo agregações, proporções e expressões de tabela comuns (CTEs). A análise se concentra em métricas como KPIs, agrupamento, rastreamento de tendências, classificação e segmentação. As referências ao SQL for Data Analysis Cheat Sheet incluem GROUP BY, classificação, extrações de partes de datas, proporções e divisão de números inteiros. Em cada exemplo, eu marco claramente as técnicas SQL relevantes, os padrões de métrica e as referências da folha de consulta. Os exemplos são organizados por dificuldade, começando com consultas simples e avançando para técnicas mais avançadas, facilitando a aplicação desses métodos a outros conjuntos de dados comerciais. Como preparar os dados Como no artigo anterior, utilizo um conjunto de dados aberto do Tableau Public, que contém dados de vendas de artigos para o lar, como escrivaninhas e artigos de papelaria. Ele é amplamente usado em relatórios comerciais e é um ótimo recurso para praticar consultas SQL. Veja a seguir as etapas para preparar os dados. Baixe o conjunto de dados do Tableau Public. Navegue até Aprender → Dados de amostra → Negócios → Superstore Sales. Baixe o conjunto de dados Superstore Sales. Os dados relevantes estão na guia "Orders" (Pedidos). Abrir o arquivo .xls Abra a guia "Orders" do arquivo .xls e exporte-a para um arquivo CSV. Para um IDE SQL, recomendo usar o MySQL Workbench e o MySQL Community Server. Carregue o arquivo CSV em seu banco de dados MySQL para iniciar a consulta. Como no artigo anterior, você pode fazer o download do código usado neste artigo na minha conta do Github. Análise de clientes Vamos começar pelo nível mais fácil no subdomínio do cliente. Resumiremos as diferentes maneiras de analisar clientes para casos de uso financeiro, de pedidos e de segmentação. Pergunta 1: Quantos clientes existem por período de tempo? Métricas de KPI: Total de clientes Tópicos de SQL: Funções agregadas, GROUP BY Padrão de métrica: TREND Seção relevante da folha de dicas: FUNÇÕES AGREGADAS SELECT EXTRACT(YEAR FROM DATE(STR_TO_DATE(order_date, '%m/%d/%Y'))) AS order_year, EXTRACT(MONTH FROM DATE(STR_TO_DATE(order_date, '%m/%d/%Y'))) AS order_month, COUNT(DISTINCT(Customer_ID)) AS active_customers FROM `Tableau Superstore`.orders GROUP BY 1, 2 ORDER BY 1, 2; Resultado: A consulta calcula o total de clientes por período de tempo em todo o conjunto de dados. Ela fornece uma tendência de quantos clientes fizeram compras por ano e mês. Um usuário pode ver como a base de clientes mudou ao longo da história da empresa. Para saber como escrever relatórios SQL como este, recomendo o Como Criar Relatórios Básicos em SQL curso. Ele tem quase 100 exercícios que o ensinarão a escrever relatórios complexos em SQL. Pergunta 2: Crie métricas financeiras baseadas no cliente por categoria e subcategoria de produto para receita média por usuário (ARPU) e lucro médio por usuário (APPU) por local Métricas de KPI: Receita média por usuário (ARPU), lucro médio por usuário (APPU) por local Tópicos de SQL: Funções agregadas, GROUP BY Padrões de métricas: OVERALL, RATIO Seções relevantes da folha de dicas: FUNÇÕES AGREGADAS, DIVISÃO DE NÚMEROS INTEIROS SELECT Region, State, City, ROUND(SUM(Sales) / COUNT(DISTINCT `Customer_ID`), 1) AS ARPU, ROUND(SUM(Profit) / COUNT(DISTINCT `Customer_ID`), 1) AS APPU FROM `Tableau Superstore`.orders GROUP BY 1, 2, 3 ORDER BY 4 DESC; Resultado: Essa consulta calcula o ARPU e o APPU para a combinação de região, estado e cidade e classifica as cidades pelo ARPU em ordem decrescente. Os resultados mostram as cidades que geram mais ARPU e também mostram seu APPU. Essa consulta pode ser usada para identificar cidades de alto valor que geram a maior receita por cliente para casos de uso de marketing estratégico e/ou estratégia de vendas. Pergunta 3: Qual é o número médio de pedidos por cliente? Qual é o valor médio do pedido (AOV) por cliente? Métricas de KPI: Quantidade média (pedidos) por cliente (AQPU), valor médio do pedido (AOV) por cliente Tópicos de SQL: Funções agregadas, GROUP BY Padrões de métricas: OVERALL, RATIO Seções relevantes da folha de dicas: FUNÇÕES AGREGADAS, DIVISÃO DE NÚMEROS INTEIROS SELECT ROUND(SUM(Quantity) / COUNT(DISTINCT `Customer_ID`), 1) AS AQPU, ROUND(SUM(Sales)/COUNT(order_id), 2) as average_order_value FROM `Tableau Superstore`.orders Resultado: Essa consulta calcula dois KPIs relacionados a pedidos (versus os relacionados a finanças da última consulta): Quantidade média por usuário (AQPU), que mede a quantidade média de produtos comprados por cliente único, e Valor médio do pedido (AOV), que mede o valor médio das vendas por pedido. Uma parte interessada pode entender melhor o comportamento de compra do cliente por meio dos pedidos. Aqui estão algumas perguntas difíceis, ambas relacionadas a segmentações de clientes em estilo classificado. A primeira analisa os clientes por meio de quatro métricas diferentes, enquanto a última combina combinações de métricas para encontrar o segmento certo. Pergunta 4: Quais são as três principais contas/clientes por margem de lucro, lucro total, vendas totais e frequência de vendas? Métricas de KPI: Total de vendas, frequência de vendas, lucro, margem de lucro por cliente Tópicos de SQL: Funções de janela Padrões de métricas: OVERALL, RANK, RATIO Seções relevantes da folha de dicas: FUNÇÕES AGREGADAS, CLASSIFICAÇÃO, DIVISÃO DE NÚMEROS INTEIROS WITH customer_metrics AS ( SELECT customer_name, ROUND(SUM(Sales), 1) AS sales_total, ROUND(SUM(Profit), 1) AS profit_total, ROUND(SUM(Profit)/SUM(Sales), 1) as profit_margin, COUNT(order_id) AS sales_frequency FROM `Tableau Superstore`.orders GROUP BY 1 ), ranked_customers AS ( SELECT customer_name, 'Profit Margin' AS metric, profit_margin AS amount, DENSE_RANK() OVER (ORDER BY profit_margin DESC) AS customer_rank FROM customer_metrics UNION ALL SELECT customer_name, 'Total Profit' AS metric, profit_total AS amount, DENSE_RANK() OVER (ORDER BY profit_total DESC) AS customer_rank FROM customer_metrics UNION ALL SELECT customer_name, 'Total Sales' AS metric, sales_total AS amount, DENSE_RANK() OVER (ORDER BY sales_total DESC) AS customer_rank FROM customer_metrics UNION ALL SELECT customer_name, 'Sales Frequency' AS metric, sales_frequency AS amount, DENSE_RANK() OVER (ORDER BY sales_frequency DESC) AS customer_rank FROM customer_metrics ) SELECT customer_name, metric, amount, customer_rank FROM ranked_customers WHERE customer_rank <= 3 ORDER BY 2, 4 Resultado: Esse é mais um tipo de relatório de baixo para cima que mostra várias métricas (vendas totais, lucro total, margem de lucro e frequência de vendas) em um nível granular - clientes individuais. Os resultados mostram os 3 principais clientes em cada uma das 4 categorias. Essa consulta pode ser usada para priorizar clientes de alto valor para estratégias de marketing e vendas direcionadas. Isenção de responsabilidade - Esse método funciona para segmentar clientes, mas você deve decidir qual métrica filtrar primeiro (receita, lucro ou margem). A ordem afeta seus resultados e nem sempre é óbvia. Mais adiante, veremos uma consulta que classifica os clientes usando todas as métricas juntas. Para saber mais sobre como usar WITH em consultas SQL, confira o curso Consultas Recursivas. Pergunta 5: Identifique clientes de alta prioridade com base em métricas como lucro, margem de lucro, frequência de compra e quantidade vendida. Segmente os clientes em grupos de prioridade Baixa, Média e Alta, sendo que a Alta representa aqueles com maior lucro e maior frequência de compra Métricas de KPI: Total de vendas, frequência de vendas, lucro e margem de lucro por cliente Tópicos de SQL: Funções de janela Padrões de métricas: RANK, MISC, RATIO Seções relevantes da folha de dicas: FUNÇÕES AGREGADAS, CLASSIFICAÇÃO, DIVISÃO DE NÚMEROS INTEIROS WITH customer_metrics AS ( SELECT customer_name, ROUND(SUM(Sales), 1) AS sales_total, ROUND(SUM(Profit), 1) AS profit_total, ROUND(SUM(Profit)/SUM(Sales), 1) as profit_margin, COUNT(order_id) AS sales_frequency FROM `Tableau Superstore`.orders GROUP BY 1 ), ranked_customers AS ( SELECT customer_name, sales_total, profit_total, profit_margin, sales_frequency, PERCENT_RANK() OVER (ORDER BY profit_margin DESC) AS profit_rank, PERCENT_RANK() OVER (ORDER BY sales_frequency DESC) AS frequency_rank FROM customer_metrics ), segmented_customers AS ( SELECT customer_name, sales_total, profit_total, profit_margin, sales_frequency, CASE WHEN profit_rank <= 0.1 AND frequency_rank <= 0.1 THEN 'High Profit & High Frequency' WHEN profit_rank <= 0.1 THEN 'High Profit' WHEN frequency_rank <= 0.1 THEN 'High Frequency' ELSE 'Low Profit & Low Frequency' END AS customer_segment FROM ranked_customers ) SELECT customer_name, sales_total, profit_total, profit_margin, sales_frequency, customer_segment FROM segmented_customers WHERE customer_segment = 'High Profit & High Frequency' ORDER BY 3 DESC; Resultado: Essa consulta segmenta os clientes com base na margem de lucro e na frequência de vendas, identificando os 10% melhores em ambas as categorias. Os resultados mostram os clientes mais valiosos como "Alto lucro e alta frequência". Isso contrasta com a última consulta que tinha as quatro categorias separadas e era difícil combinar os resultados para mostrar os clientes mais valiosos. Essa consulta pode ser usada para priorizar clientes e, em seguida, direcioná-los para campanhas de marketing e/ou vendas. Para saber mais sobre as funções de janela no SQL, recomendo nosso curso interativo Funções de Janela (Window Functions) em SQL. Análise de produtos Aqui estão mais algumas perguntas de nível fácil, desta vez com foco em produtos. As duas primeiras perguntas são lineares a algumas das perguntas dos clientes e exigem análise de tendências, mas a última é um tipo diferente de problema de segmentação. Pergunta 6: Quantos produtos diferentes são pedidos em cada período de tempo? Métricas de KPI: Total de produtos distintos Tópicos de SQL: Funções de agregação, GROUP BY Padrões de métricas: TREND Seções relevantes da folha de dicas: FUNÇÕES AGREGADAS, EXTRAÇÃO DE PARTES DE DATA SELECT EXTRACT(YEAR FROM DATE(STR_TO_DATE(order_date, '%m/%d/%Y'))) AS order_Year, EXTRACT(MONTH FROM DATE(STR_TO_DATE(order_date, '%m/%d/%Y'))) AS order_Month, COUNT(DISTINCT product_id) AS unique_items FROM `Tableau Superstore`.orders GROUP BY 1, 2 ORDER BY 1, 2 DESC Resultado: Essa consulta mostra uma tendência no lado do produto para itens exclusivos vendidos. Essa métrica pode ser usada como uma verificação inicial do tipo de inventário dos produtos que estão sendo vendidos. Pergunta 7: Criar um relatório de vendas, lucro e margem de lucro para cada produto Métricas de KPI: Total de vendas, lucro e margem de lucro por produto Tópicos de SQL: Funções agregadas, GROUP BY Padrões de métricas: OVERALL, RATIO Seções relevantes da folha de dicas: FUNÇÕES AGREGADAS, DIVISÃO DE NÚMEROS INTEIROS SELECT product_id, category, sub_category, ROUND(SUM(sales), 1) AS sales_total, ROUND(SUM(profit), 1) AS profit_total, ROUND(SUM(profit)/SUM(sales), 1) as profit_margin FROM `Tableau Superstore`.orders GROUP BY 1, 2, 3 ORDER BY 4 DESC Resultado: Essa consulta calcula o total de vendas, o lucro total e a margem de lucro de cada produto e mostra o ID do produto, a categoria e a subcategoria de cada um. Os resultados mostram o desempenho em nível de produto, destacando os produtos mais vendidos e as margens de lucro de cada um. A consulta pode ser usada para encontrar os produtos mais vendidos e mostrar sua lucratividade - é um relatório geral que pode ser usado para determinação de preços e estoque. Esse é outro tipo de pergunta de nível difícil, que trata de segmentação, mas é diferente das duas primeiras, de clientes. Trata-se de segmentar um resultado agrupado - uma métrica por uma categoria. Pergunta 8: Quais são os três itens com a menor margem de lucro para cada local, considerando as combinações de item-local. Se houver produtos com empates, mostre-os também. Métricas de KPI: Margem de lucro Tópicos de SQL: Funções de janela Padrões de métricas: RANK, MISC, RATIO Seções relevantes da folha de dicas: FUNÇÕES AGREGADAS, CLASSIFICAÇÃO, DIVISÃO DE NÚMEROS INTEIROS WITH product_metrics AS ( SELECT product_id, state, city, ROUND(SUM(Sales), 1) AS sales_total, ROUND(SUM(Profit), 1) AS profit_total, ROUND(SUM(Profit)/SUM(Sales), 2) as profit_margin FROM `Tableau Superstore`.orders GROUP BY 1, 2, 3 ), ranked_products AS ( SELECT product_id, state, city, sales_total, profit_total, profit_margin, DENSE_RANK() OVER (ORDER BY profit_margin ASC) AS profit_rank FROM product_metrics WHERE profit_margin IS NOT NULL ) SELECT product_id, state, city, sales_total, profit_margin, profit_rank FROM ranked_products WHERE profit_rank <= 3 ORDER BY 5 ASC; Resultado: Essa consulta calculou as métricas de desempenho do produto por combinações de cidade-estado-produto_id e mostra as margens de lucro mais baixas. Os resultados mostram as combinações menos lucrativas e podem ser usados para mostrar as áreas de baixo desempenho - seja para melhorar ou cortar determinados produtos nessas áreas. Resumo Os oito exemplos deste artigo continuam a discussão do artigo anterior sobre como responder a perguntas de relatórios em um contexto comercial. Começamos com métricas básicas de KPI, passamos para a análise de tendências e concluímos com cálculos mais avançados de classificação e segmentação. Ao trabalhar com essas consultas, você viu padrões comuns de SQL usados em relatórios de negócios, incluindo agregações, funções de janela e subconsultas. Quer você tenha acompanhado passo a passo ou simplesmente revisado os exemplos, essas técnicas podem servir como referência prática para analisar dados de vendas em SQL. Espero que esta análise tenha ajudado a esclarecer como aplicar a Folha de dicas para analistas de dados na prática. Se algo não estiver claro, se você identificar algum erro ou se tiver dúvidas sobre o artigo ou qualquer parte do código, vamos discutir e melhorar juntos! Terei prazer em me conectar no LinkedIne você pode encontrar mais exemplos e informações em meu perfil do Tableau Public ou em meu blog. Aguardamos sua opinião! Tags: análise de dados