Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

É possível fazer GROUP By por aluno.id em vez de primeiro_nome e ultimo_nome

Minha duvida é se eu poderia fazer o GROUP BY utilizando a coluna aluno.id. Isso é possivel ? Se sim, teria algum problema?

Por exemplo, a query ficaria assim:

SELECT  aluno.primeiro_nome, 
         aluno.ultimo_nome, 
         COUNT(aluno_curso.curso_id) numero_cursos
    FROM aluno
    JOIN aluno_curso ON aluno_curso.aluno_id = aluno.id
    GROUP BY aluno.id
    ORDER BY numero_cursos DESC;
1 resposta
solução!

Olá, Henrique, tudo bem?

É possível sim, em outros bancos de dados, como o SQL Server, quando utilizamos uma função de agregação, precisamos também utilizar a cláusula GROUP BY, pois é necessário especificar por quais campos queremos realizar o agrupamento dos registros, e nestes casos, precisamos especificar exatamente os campos que informamos no SELECT.

No caso do PostgreSQL, não precisamos utilizar a cláusula GROUP BY ao utilizar uma função de agregação, e nem precisamos informar exatamente os campos que estão no SELECT, então, creio que você não terá problemas ao utilizar o campo aluno.id:

  • Utilizando o campo aluno.id no GROUP BY:
SELECT  aluno.primeiro_nome, 
         aluno.ultimo_nome, 
         COUNT(aluno_curso.curso_id) numero_cursos
    FROM aluno
    JOIN aluno_curso ON aluno_curso.aluno_id = aluno.id
    GROUP BY aluno.id
    ORDER BY numero_cursos DESC;

Print do PgAdmin onde foi executada a query anterior,  informando no GROUP By o campo aluno.id

  • Utilizando os campos informados no SELECT no GROUP BY:
SELECT  aluno.primeiro_nome, 
         aluno.ultimo_nome, 
         COUNT(aluno_curso.curso_id) numero_cursos
    FROM aluno
    JOIN aluno_curso ON aluno_curso.aluno_id = aluno.id
    GROUP BY aluno.primeiro_nome, 
         aluno.ultimo_nome
    ORDER BY numero_cursos DESC;

Print do PgAdmin onde foi executada a query anterior,  informando no GROUP By os campos aluno.primeiro_nome e          aluno.ultimo_nom

A título de curiosidade, caso queira ver um pouco mais sobre o assunto, indico a leitura da documentação do PostgreSQL.

OBS: Infelizmente a documentação do PostgreSQL é em inglês, então, caso tenha dificuldade em relação a este idioma, indico que tente utilizar o tradutor do navegador, para conseguir efetuar a leitura em português, mas qualquer dúvida ou dificuldade estarei à disposição.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!