Cursos › Decisões Orientadas por Dados: Da Pergunta à Resposta

Agrupar numa Tabela Pronta para Gráfico

Lição 6 de 8 · 13 min

Uma linha por barra

Um gráfico é uma tabela disfarçada. Um gráfico de barras de receita por fonte precisa exatamente de uma linha por fonte e uma coluna por valor. Passar de milhares de linhas de encomendas para um punhado de linhas-resumo é o trabalho do GROUP BY.

SQL
SELECT source,
       COUNT(*) AS orders,
       ROUND(SUM(net_amount), 2) AS revenue
FROM orders
WHERE status = 'delivered'
  AND order_date >= '2026-01-01'
  AND order_date < '2026-04-01'
GROUP BY source
ORDER BY revenue DESC;

GROUP BY source junta todas as linhas com a mesma fonte numa só linha, e agregações como COUNT e SUM passam então a atuar dentro de cada grupo. Toda a coluna em SELECT tem de aparecer no GROUP BY ou estar dentro de uma agregação. Caso contrário, o SQL não pode saber qual dos muitos valores de um grupo deve mostrar.

Para o primeiro trimestre de 2026, o resultado coloca direct em primeiro lugar com CHF 14'711.70, depois a pesquisa paga com CHF 5'798.60 e o orgânico com CHF 5'716.96. As redes sociais ficam em último com CHF 2'662.37. Lê com atenção: source é a fonte da visita que levou à encomenda. Das 273 encomendas feitas a partir de visitas diretas nesse trimestre, apenas 22 foram uma primeira encomenda. Esta tabela mostra onde chegam as encomendas, não que canal conquistou o cliente.

Agrupar por um valor calculado

Para agrupar por mês, calcula o mês a partir da data. strftime(order_date, '%Y-%m') formata uma data como texto, por exemplo 2025-07. Como o texto começa pelo ano, ordená-lo também ordena os meses por ordem cronológica.

  • Dá um nome à coluna calculada com AS, por exemplo AS month. No DuckDB podes depois escrever GROUP BY month; noutras bases de dados repete-se o cálculo.
  • Filtra antes de agrupar. O WHERE remove linhas antes de serem agrupadas, por isso as encomendas canceladas nunca chegam às somas.
  • Ordena as linhas da forma como o gráfico se lê: meses por tempo, categorias por tamanho.
  • Mantém o número de linhas suficientemente pequeno para se ler. Oito regiões ou doze meses fazem um bom gráfico; 96 produtos normalmente precisam de um top 10 e uma linha para o resto.

Que aspeto tem o ano

Agrupada por mês, a receita entregue em 2025 vai de CHF 7'963.79 em julho a CHF 18'373.89 em dezembro. Dezembro não teve o maior número de encomendas; foi novembro, com 273. Os cabazes de dezembro foram os maiores, com uma média de CHF 70.67. O segundo trimestre de 2025 trouxe CHF 37'265.67.

As encomendas e a receita nem sempre ordenam os grupos da mesma forma. Em 2025, Genebra teve 272 encomendas entregues e Basileia 264, mas Basileia trouxe mais receita, CHF 16'079.85 contra CHF 15'744.15, porque as suas encomendas eram maiores em média. Quando dois valores podem contar histórias diferentes, ambas as colunas pertencem à tabela.

Esta forma importa a Lena de duas maneiras. O segundo trimestre não é época alta, por isso uma receita estagnada de abril a junho não provaria que um novo orçamento falhou. E os resultados de um canal em dezembro não deviam ser comparados com os resultados de julho sem o dizer no memorando.

💡 Uma tabela pronta para gráfico não tem células vazias, tem uma unidade clara por coluna, como encomendas ou CHF, e exatamente as linhas que o gráfico vai mostrar. Se tiveres de apagar linhas numa folha de cálculo antes de fazer o gráfico, muda antes a consulta.
Teste de conhecimento
Que consulta devolve uma tabela correta e pronta para gráfico de encomendas por região?

Entra para responder e acompanhar o teu progresso.

Entrar
</>
Babala Software Netzwerk — Apps, Websites & KI-Lösungen aus Füllinsdorf BL
© 2026 Babala Özdemir · UID CHE-322.105.560 babala.ch info@babala.ch 076 792 63 50 Facebook Instagram