Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Guia Detalhado do GROUP BY em PostgreSQL para Análise de Dados, Notas de estudo de Bancos de Dados Relacionais

O uso do comando group by em postgresql para agregação de dados, detalhando sua sintaxe, funcionalidade e aplicações práticas em um esquema de banco de dados universitário. Através de exemplos baseados em tabelas como usuario, professor, cursa e emprestimo, o material demonstra como o group by pode ser aplicado para analisar diversos aspectos, como desempenho acadêmico, carga de ensino de professores e padrões de empréstimo na biblioteca. O documento também aborda o uso da cláusula having para filtrar grupos com base em condições, além de considerações técnicas como o tratamento de valores null e a escolha entre inner join e left join. O objetivo é proporcionar uma compreensão clara e detalhada para estudo autodidata.

Tipologia: Notas de estudo

2025

À venda por 28/08/2025

gabriel-batista-barbosa-1
gabriel-batista-barbosa-1 🇧🇷

4 documentos

1 / 5

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
👥
GROUP BY em PostgreSQL
O comando GROUP BY no PostgreSQL é uma ferramenta essencial para
agregação de dados, permitindo que linhas com valores comuns em colunas
específicas sejam agrupadas em resumos. Ele é frequentemente usado com
funções de agregação, como COUNT, SUM, AVG, MAX ou MIN, para realizar
cálculos sobre grupos de dados, gerando relatórios concisos e informativos.
No contexto do esquema de banco de dados fornecido, que modela um
sistema universitário com tabelas para usuários, professores, estudantes,
departamentos, disciplinas e empréstimos, o GROUP BY pode ser aplicado
para analisar diversos aspectos, como desempenho acadêmico, carga de
ensino de professores ou padrões de empréstimo na biblioteca. Este material
explora o uso do GROUP BY, detalhando sua sintaxe, funcionalidade e
aplicações práticas por meio de exemplos baseados no esquema universitário,
com o objetivo de proporcionar uma compreensão clara e detalhada para
estudo autodidata.
Sintaxe e Funcionalidade
O GROUP BY é utilizado em uma consulta SELECT para agrupar linhas que
possuem valores idênticos em colunas específicas, produzindo uma única linha
para cada combinação única de valores. A sintaxe básica é:
SELECT coluna1, coluna2, função_agregação(coluna3
FROM tabela
GROUP BY coluna1, coluna2;
Aqui, coluna1 e coluna2 são usadas para agrupamento, e função_agregação (como
COUNT ou AVG realiza cálculos em outra coluna. Todas as colunas não
agregadas no SELECT devem estar no GROUP BY para garantir resultados
consistentes, conforme o padrão SQL. No esquema da universidade, tabelas
como usuario , professor , cursa e emprestimo oferecem oportunidades para aplicar o
GROUP BY em análises variadas.
GROUP BY em PostgreSQL
1
pf3
pf4
pf5

Pré-visualização parcial do texto

Baixe Guia Detalhado do GROUP BY em PostgreSQL para Análise de Dados e outras Notas de estudo em PDF para Bancos de Dados Relacionais, somente na Docsity!

GROUP BY em PostgreSQL

O comando GROUP BY no PostgreSQL é uma ferramenta essencial para agregação de dados, permitindo que linhas com valores comuns em colunas específicas sejam agrupadas em resumos. Ele é frequentemente usado com funções de agregação, como COUNT, SUM, AVG, MAX ou MIN, para realizar cálculos sobre grupos de dados, gerando relatórios concisos e informativos. No contexto do esquema de banco de dados fornecido, que modela um sistema universitário com tabelas para usuários, professores, estudantes, departamentos, disciplinas e empréstimos, o GROUP BY pode ser aplicado para analisar diversos aspectos, como desempenho acadêmico, carga de ensino de professores ou padrões de empréstimo na biblioteca. Este material explora o uso do GROUP BY, detalhando sua sintaxe, funcionalidade e aplicações práticas por meio de exemplos baseados no esquema universitário, com o objetivo de proporcionar uma compreensão clara e detalhada para estudo autodidata.

Sintaxe e Funcionalidade

O GROUP BY é utilizado em uma consulta SELECT para agrupar linhas que possuem valores idênticos em colunas específicas, produzindo uma única linha para cada combinação única de valores. A sintaxe básica é:

SELECT coluna1, coluna2, função_agregação(coluna3 FROM tabela GROUP BY coluna1, coluna2;

Aqui, coluna1 e coluna2 são usadas para agrupamento, e função_agregação (como COUNT ou AVG realiza cálculos em outra coluna. Todas as colunas não agregadas no SELECT devem estar no GROUP BY para garantir resultados consistentes, conforme o padrão SQL. No esquema da universidade, tabelas como usuario , professor , cursa e emprestimo oferecem oportunidades para aplicar o GROUP BY em análises variadas.

Exemplos Práticos

Contagem de Professores por Departamento

Para determinar quantos professores estão alocados em cada departamento, podemos usar a tabela professor , que referencia o código do departamento ( cod_depto ) da tabela departamento. A consulta a seguir conta os professores por nome do departamento:

SELECT d.nome, COUNT(p.mat_professor) AS num_professores FROM universidade.departamento d LEFT JOIN universidade.professor p ON d.cod_depto = p.departamento GROUP BY d.nome;

Essa consulta usa um LEFT JOIN para incluir departamentos sem professores, agrupando os resultados pelo nome do departamento ( d.nome ) e contando o número de matrículas de professores ( mat_professor ). No conjunto de dados fornecido, o resultado pode mostrar, por exemplo, que o "Departamento de Computação" possui cinco professores, enquanto o "Departamento de Engenharia Elétrica" pode ter zero.

Média de Notas por Disciplina

A tabela cursa armazena informações sobre as matrículas dos estudantes em turmas, incluindo suas notas. Para calcular a média de notas por disciplina, podemos juntar as tabelas turma , disciplina e cursa :

SELECT d.nome, AVG(c.nota) AS media_nota FROM universidade.turma t JOIN universidade.disciplina d ON t.cod_disc = d.cod_disc JOIN universidade.cursa c ON t.id_turma = c.id_turma GROUP BY d.nome;

Essa consulta agrupa as notas pelo nome da disciplina e calcula a média usando a função AVG. Por exemplo, a disciplina "Estrutura de Dados I" pode apresentar uma média de 8.7, com base nas notas registradas na tabela cursa , fornecendo insights sobre o desempenho dos estudantes.

Contagem de Empréstimos por Usuário

JOIN universidade.disciplina d ON t.cod_disc = d.cod_disc JOIN universidade.cursa c ON t.id_turma = c.id_turma GROUP BY t.ano, t.semestre, d.nome;

Essa consulta agrupa os dados por ano, semestre e nome da disciplina, contando os estudantes inscritos. Por exemplo, em 2017, semestre 2, a disciplina "Fundamentos da Computação" pode ter quatro estudantes.

Maior Nota por Disciplina

Para encontrar a maior nota em cada disciplina, podemos usar a função MAX

SELECT d.nome, MAX(c.nota) AS maior_nota FROM universidade.turma t JOIN universidade.disciplina d ON t.cod_disc = d.cod_disc JOIN universidade.cursa c ON t.id_turma = c.id_turma GROUP BY d.nome;

Essa consulta agrupa as notas por disciplina e retorna a maior nota. Por exemplo, "Programação Imperativa" pode ter uma nota máxima de 10, indicando um desempenho excepcional de pelo menos um estudante.

Carga de Ensino dos Professores

Para contar quantas turmas cada professor leciona, juntamos as tabelas professor , usuario e leciona :

SELECT u.primeiro_nome, u.sobrenome, COUNT(l.id_turma) AS total_turma s FROM universidade.professor p JOIN universidade.usuario u ON p.cpf = u.cpf JOIN universidade.leciona l ON p.mat_professor = l.mat_professor GROUP BY u.primeiro_nome, u.sobrenome;

Essa consulta revela, por exemplo, que o Professor A CPF 11111111100 leciona três turmas, com base nos registros da tabela leciona.

Considerações Técnicas

Valores NULL  No PostgreSQL, valores NULL em colunas de agrupamento são tratados como um grupo único. Por exemplo, professores sem departamento formariam um grupo separado se departamento fosse NULL. Tipos de JOIN  A escolha entre INNER JOIN e LEFT JOIN impacta os resultados. Um LEFT JOIN inclui todos os registros da tabela à esquerda, útil para departamentos sem professores. HAVING vs. WHERE  O WHERE filtra linhas antes do agrupamento, enquanto o HAVING filtra grupos após o GROUP BY, sendo crucial para condições em agregações.

Conclusão

O GROUP BY no PostgreSQL é uma ferramenta poderosa para resumir e analisar dados, transformando grandes conjuntos de dados em informações úteis. No esquema da universidade, ele permite análises como a distribuição de professores, médias de notas, padrões de empréstimos e carga de ensino. As consultas apresentadas, baseadas no esquema fornecido, ilustram como o GROUP BY, combinado com funções de agregação e cláusulas como HAVING, pode gerar relatórios detalhados, essenciais para estudo e tomada de decisões em sistemas de banco de dados.