Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida no Ex. 3 da Aula 4 - Filtrando agregações e o HAVING

Olá! Tenho uma dúvida no seguinte, escrevi meu código um pouco diferente, deu o mesmo resultado, mas acredito que o raciocínio possa ter algo de errado, que, mais tarde pode me complicar em outras consultas ao banco de dados.

Meu código ficou:

select c.nome, count(m.id) from 
matricula m 
join curso c on m.curso_id = c.id
group by c.nome
having count(m.curso_id) > 1;

Enquanto o código do gabarito:

select c.nome, count(m.id) from 
curso c join matricula m on c.id = m.curso_id
group by c.nome
having count(m.id) > 1

Eu fiz o meu 'having' contando a coluna do curso_id da tabela matrícula e não o id. Não consigo entender como fazer o filtro através da coluna id, já que todas as linhas tem um id diferente.

Acho que minha dúvida ficou um pouco confusa, espero que dê para entender.

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
2 respostas
solução!

Daniel, Bom dia !

seu código está certo , mas o que pode complicar que o números de registro de curso é diferente de quantidade de matricula , então pode ser que de uma diferença .

sobre o count , é necessário pegar um campo para fazer a contagem , então pode ser id , como também pode ser colocado count(*) e count(1)

que dará certo .

espero ter ajudado , Bons Estudos

Perfeito! Muito obrigado!