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.

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!