Corrija o bugPráticaSQL
Corrigir filtro de grupo por contagem
Trocar WHERE por HAVING para filtrar grupo.
A consulta abaixo tenta devolver id_curso e total com uma linha por id_curso para cursos com mais de 1 matrícula, mas usa WHERE para filtrar COUNT(*). Corrija para devolver id_curso e total nessa ordem usando GROUP BY e HAVING.
Revisa aula 15 (14/09)
Solução comentada
Verifique uma tentativa sua para liberar a solução.
SELECT id_curso, COUNT(*) AS total FROM matriculas GROUP BY id_curso HAVING COUNT(*) > 1WHERE filtra linhas e não entende COUNT(*). O GROUP BY id_curso precisa vir antes do filtro de grupo. O HAVING COUNT(*) > 1 filtra depois de agregar e mantém só cursos com mais de 1.
Erro comum: Manter WHERE COUNT(*) > 1 que é inválido para filtrar agregado.
Tabelas
matriculas 12 linhas
| id | id_aluno | id_curso | preco | data_matricula |
|---|---|---|---|---|
| 1 | 101 | python | 200 | 2026-09-05 |
| 2 | 101 | python | 200 | 2026-09-15 |
| 3 | 103 | dados | 350 | 2026-08-20 |
| 4 | 101 | dados | 350 | 2026-09-21 |
| 5 | 104 | web | 150 | 2026-09-10 |
| 6 | 105 | web | 150 | 2026-09-11 |
| 7 | 106 | web | NULL | 2026-09-12 |
| 8 | 107 | python | 200 | 2026-08-30 |
| 9 | 108 | dados | 350 | 2026-09-25 |
| 10 | 109 | ia | 500 | 2026-09-21 |
| 11 | 110 | ia | 500 | 2026-09-22 |
| 12 | 102 | ia | 500 | 2026-07-15 |
Sua consulta
O código ao lado tem um bug. Encontre, corrija e verifique.