SQL: Funções de Agregação e AgrupamentoAtividades e Estratégias de Ensino
As funções de agregação e agrupamento em SQL transformam dados brutos em informação útil, mas a sua abstração requer prática ativa. Ao manipular datasets reais em estações rotativas ou projetos colaborativos, os alunos interiorizam como as cláusulas GROUP BY e HAVING estruturam os resultados, reduzindo a distância entre teoria e aplicação prática no mundo das bases de dados.
Objetivos de Aprendizagem
- 1Calcular o número de registos numa tabela e o valor total de uma coluna numérica utilizando as funções COUNT e SUM.
- 2Determinar o valor médio e os valores máximo e mínimo de uma coluna numérica numa tabela utilizando as funções AVG, MAX e MIN.
- 3Agrupar registos com base nos valores de uma ou mais colunas e aplicar funções de agregação a cada grupo utilizando a cláusula GROUP BY.
- 4Filtrar grupos de resultados com base numa condição aplicada a uma função de agregação utilizando a cláusula HAVING, distinguindo-a da cláusula WHERE.
- 5Analisar o impacto da cláusula GROUP BY na apresentação de dados resumidos em comparação com a apresentação de dados não agrupados.
Pretende um plano de aula completo com estes objetivos? Gerar uma Missão →
Rotação de Estações: Queries Agregadas
Prepare quatro estações com datasets temáticos: vendas (SUM/AVG), registos (COUNT/MAX), notas (MIN/AVG por turma), clientes (GROUP BY). Os grupos rotacionam a cada 10 minutos, escrevem e executam uma query por estação, registando métricas num quadro partilhado.
Preparação e detalhes
Analise como as funções de agregação podem transformar dados brutos em métricas significativas.
Sugestão de Facilitação: Na Rotação de Estações, prepare datasets distintos para cada estação e inclua intencionalmente valores NULL ou duplicados para testar a robustez das queries dos alunos.
Setup: Grupos em mesas com acesso a materiais de consulta
Materials: Coleção de fontes documentais, Ficha de trabalho do ciclo de investigação, Protocolo de formulação de perguntas, Modelo de apresentação de resultados
Projeto em Pares: Análise de Vendas
Forneça uma base de dados de vendas reais. Os pares escrevem queries com GROUP BY para calcular totais por região e filtrar com HAVING grupos acima de um valor. Apresentam um gráfico dos resultados usando ferramentas como Google Sheets.
Preparação e detalhes
Explique a importância da cláusula GROUP BY na análise de dados agregados.
Sugestão de Facilitação: No Projeto em Pares de Análise de Vendas, forneça uma tabela com pelo menos 50 registos e peça aos alunos que justifiquem as suas escolhas de agrupamento em voz alta.
Setup: Grupos em mesas com acesso a materiais de consulta
Materials: Coleção de fontes documentais, Ficha de trabalho do ciclo de investigação, Protocolo de formulação de perguntas, Modelo de apresentação de resultados
Desafio Coletivo: Otimizar Consultas
Apresente uma query ineficiente com agregações. A turma divide-se em equipas para reescrever com GROUP BY otimizado, compara tempos de execução e discute diferenças entre WHERE e HAVING em conjunto.
Preparação e detalhes
Compare a utilização de HAVING e WHERE em consultas com agrupamento.
Sugestão de Facilitação: Para o Desafio Coletivo de Otimizar Consultas, use uma query inicial ineficiente e peça aos grupos que a refaçam em 10 minutos, comparando depois os planos de execução.
Setup: Grupos em mesas com acesso a materiais de consulta
Materials: Coleção de fontes documentais, Ficha de trabalho do ciclo de investigação, Protocolo de formulação de perguntas, Modelo de apresentação de resultados
Exercício Individual: Dataset Personalizado
Cada aluno importa um dataset próprio (ex.: notas pessoais ou jogos) e cria três queries com funções agregadas e GROUP BY. Partilham uma no forum da turma para feedback.
Preparação e detalhes
Analise como as funções de agregação podem transformar dados brutos em métricas significativas.
Sugestão de Facilitação: No Exercício Individual com Dataset Personalizado, atribua a cada aluno uma tabela diferente, mas com a mesma estrutura, para fomentar a discussão de abordagens alternativas.
Setup: Grupos em mesas com acesso a materiais de consulta
Materials: Coleção de fontes documentais, Ficha de trabalho do ciclo de investigação, Protocolo de formulação de perguntas, Modelo de apresentação de resultados
Ensinar Este Tópico
Ensine funções de agregação começando por exemplos simples, como contar alunos por turma, antes de introduzir cenários complexos. Evite explicar unicamente a sintaxe; em vez disso, peça aos alunos que prevejam os resultados de queries antes de as executar. A investigação mostra que esta abordagem reduz erros conceptuais, como confundir GROUP BY com filtros globais. Use analogias visuais, como dividir uma turma em grupos antes de calcular médias, para ancorar a abstração.
O Que Esperar
No final destas atividades, espera-se que os alunos consigam construir queries precisas com funções como COUNT, SUM, AVG, MAX e MIN, combinadas com GROUP BY e HAVING, para responder a questões concretas sobre dados. A autonomia na depuração de erros e a capacidade de explicar as diferenças entre WHERE e HAVING são indicadores claros de sucesso.
Estas atividades são um ponto de partida. A missão completa é a experiência.
- Guião completo de facilitação com falas do professor
- Materiais imprimíveis para o aluno, prontos para a aula
- Estratégias de diferenciação para cada tipo de aluno
Atenção a estes erros comuns
Erro comumDurante a Rotação de Estações, ouça os alunos dizerem que 'o GROUP BY aplica funções a todos os dados'.
O que ensinar em alternativa
Peça-lhes que escrevam a query para somar vendas por categoria e executem-na com uma tabela que tenha 3 categorias distintas. Pergunte: 'Quantos grupos foram criados? Se removermos a cláusula GROUP BY, quantos resultados obtemos?'.
Erro comumDurante o Projeto em Pares de Análise de Vendas, observe discussões sobre 'usar HAVING ou WHERE para filtrar vendas acima de 1000€'.
O que ensinar em alternativa
Peça aos pares que escrevam a mesma query com WHERE e depois com HAVING, executem-nas e comparem os resultados. Pergunte: 'Porque é que a query com WHERE devolve menos linhas?'
Erro comumDurante o Exercício Individual com Dataset Personalizado, verifique se os alunos incluem NULLs nos cálculos de AVG.
O que ensinar em alternativa
Inclua uma coluna com 20% de valores NULL na tabela do aluno e peça-lhe que calcule a média antes e depois de substituir os NULLs por zeros. Pergunte: 'Qual é a diferença entre estes valores e porquê?'.
Ideias de Avaliação
Após a Rotação de Estações, peça aos alunos que escrevam uma query que conte o número de encomendas por cliente, usando SUM e GROUP BY numa tabela de vendas. Inclua: 'Explique como alteraria esta query para mostrar apenas clientes com mais de 5 encomendas, justificando a cláusula usada'.
Durante o Projeto em Pares de Análise de Vendas, mostre o resultado de uma query que calcula a média de preços por produto e pergunte: 'Este valor representa a média de todos os produtos ou de cada grupo? O que acontece se adicionarmos ORDER BY preço DESC?'.
Após o Desafio Coletivo de Otimizar Consultas, coloque a seguinte questão para discussão em grande grupo: 'Se uma query com GROUP BY demorar 30 segundos a executar, que estratégias podem reduzir este tempo? Debata o papel de índices, cláusulas WHERE e agregações parciais'.
Extensões e Apoio
- Peça aos alunos que identifiquem 3 queries erradas num conjunto fornecido e corrijam-nas, explicando cada passo.
- Para alunos com dificuldades, forneça um template de query com lacunas para preencher, focando-se primeiro em COUNT e SUM.
- Explore queries com múltiplas funções de agregação numa única instrução, como calcular a média e o desvio padrão por grupo, discutindo limitações do SQL padrão.
Vocabulário-Chave
| Função de Agregação | Funções SQL que realizam um cálculo num conjunto de valores e devolvem um único valor. Exemplos comuns incluem COUNT, SUM, AVG, MAX, MIN. |
| COUNT | Conta o número de linhas que correspondem a um critério especificado. Pode contar todas as linhas ou apenas as linhas com valores não nulos numa coluna específica. |
| GROUP BY | Cláusula SQL utilizada para agrupar linhas que têm os mesmos valores em uma ou mais colunas numa tabela, permitindo a aplicação de funções de agregação a cada grupo. |
| HAVING | Cláusula SQL utilizada para filtrar grupos criados pela cláusula GROUP BY, com base numa condição que geralmente envolve uma função de agregação. |
Metodologias Sugeridas
Mais em Desenvolvimento de Aplicações e Interfaces
Modelação de Dados: Entidades e Atributos
Os alunos aprendem a identificar entidades e os seus atributos, como primeiro passo na modelação de bases de dados.
2 methodologies
Associações e Cardinalidade
Os alunos exploram os diferentes tipos de associações (1:1, 1:N, N:M) e a sua cardinalidade em diagramas Entidade-Associação.
2 methodologies
Redundância e Integridade de Dados
Os alunos aprendem a identificar e a minimizar a redundância de dados em bases de dados relacionais, compreendendo a sua importância para a integridade e consistência da informação.
2 methodologies
Introdução ao SQL: DDL (Data Definition Language)
Os alunos aprendem a criar e modificar a estrutura de bases de dados e tabelas usando comandos SQL DDL (CREATE, ALTER, DROP).
2 methodologies
SQL: DML (Data Manipulation Language)
Os alunos praticam a inserção, atualização e eliminação de dados em tabelas usando comandos SQL DML (INSERT, UPDATE, DELETE).
2 methodologies
Preparado para lecionar SQL: Funções de Agregação e Agrupamento?
Gere uma missão completa com tudo o que precisa
Gerar uma Missão