Carregando
0x30Lição 4 de 9

Resuma com agregações

Conte linhas, calcule totais e agrupe registros para comparar.

12 min Questionário com 5 perguntas 1 exercício de código
Ao final desta lição, você saberá
  • Usar funções agregadas e diferenciar WHERE de HAVING.

Funções agregadas calculam um resultado a partir de várias linhas. GROUP BY cria grupos por valor distinto; HAVING filtra os grupos após agregação. WHERE filtra linhas antes de agrupar.

SQL example
1SELECT customer_id, COUNT(*) AS order_count, SUM(total) AS lifetime_value
2FROM orders
3WHERE total > 0
4GROUP BY customer_id
5HAVING COUNT(*) >= 2
6ORDER BY lifetime_value DESC;

COUNT(*) conta linhas. COUNT(coluna) ignora NULL nessa coluna. SUM, AVG, MIN e MAX resumem valores numéricos/ordenáveis, conforme o tipo de dado.

Principais conclusões

  • Usar funções agregadas e diferenciar WHERE de HAVING.

  • Use nomes de tabela e coluna que tornem a consulta legível.

  • Confirme quais linhas a consulta afeta antes de depender do resultado.

Quiz da aula

5 perguntas · aprovação com 4 acertos · até 50 XP

Ao passar, você conclui a aula e mantém sua sequência. As perguntas erradas voltarão em sessões de revisão.

Pratique: escreva consultas SQL

Escreva consultas em pequenos bancos de dados de exemplo e execute-as localmente no navegador. Cada teste começa com um banco SQLite novo.

Exercício 1

Resuma pedidos por cliente

+25 XP

Para clientes com pelo menos 2 pedidos, retorne customer_id, quantidade de pedidos e gasto total, ordenado por gasto total decrescente.

  • Totais agrupados de pedidos
Escolha o mecanismo de banco de dados para executar os testes.
Tabelas e registros de exemplo

Cada teste recria um banco de dados em memória no dialeto escolhido antes de executar a consulta.

sample-data.sql
CREATE TABLE orders (customer_id INTEGER, total REAL); INSERT INTO orders VALUES (1, 20), (1, 30), (2, 15), (3, 80), (3, 40), (3, 10);
query.sql
Carregando editor…

Usando SQLite 3 (sql.js), um banco de dados embutido. As consultas rodam localmente em um worker, com um banco em memória novo a cada teste.

Dúvidas sobre esta lição

Travou em algum ponto? Pergunte. Descobriu algo? Compartilhe. Explicar também é uma ótima forma de aprender.

Carregando publicações…