Resuma com agregações
Conte linhas, calcule totais e agrupe registros para comparar.
- 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.
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.
Resuma pedidos por cliente
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
Tabelas e registros de exemplo
Cada teste recria um banco de dados em memória no dialeto escolhido antes de executar a consulta.
CREATE TABLE orders (customer_id INTEGER, total REAL); INSERT INTO orders VALUES (1, 20), (1, 30), (2, 15), (3, 80), (3, 40), (3, 10);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…