Escreva o códigoPráticaSQL
Cursos com mais de uma matrícula cara
Separar filtro de linha com WHERE e filtro de grupo com HAVING.
Considere só linhas com preco maior ou igual a 200 usando WHERE. Devolva id_curso e total nessa ordem, uma linha por id_curso, só para cursos com mais de 1 matrícula usando GROUP BY e HAVING com COUNT(*) > 1.
Revisa aula 16 (17/09)
Solução comentada
Verifique uma tentativa sua para liberar a solução.
SELECT id_curso, COUNT(*) AS total FROM matriculas WHERE preco >= 200 GROUP BY id_curso HAVING COUNT(*) > 1WHERE roda antes de agrupar e remove preços baixos e NULL. O GROUP BY id_curso conta por curso com COUNT(*). O HAVING roda depois e mantém só grupos com COUNT(*) > 1.
Erro comum: Tentar filtrar a contagem com WHERE em vez de HAVING.
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
Escreva sua solução e verifique quando quiser.