Escreva o códigoPráticaSQL
Status com mais de um
Listar em ordem os status com mais de uma matrícula.
Da tabela matriculas, agrupe por status e fique só com grupos com mais de 1 linha usando HAVING. Devolva status e total nessa ordem, ordenado por status em ASC com ORDER BY.
Revisa aula 13 (03/09)
Solução comentada
Verifique uma tentativa sua para liberar a solução.
SELECT status, COUNT(*) AS total FROM matriculas GROUP BY status HAVING total > 1 ORDER BY status ASC;O GROUP BY com COUNT(*) conta as linhas de cada status. O HAVING mantém só grupos com total acima de 1 e o ORDER BY ordena por status em ASC.
Erro comum: Usar WHERE com o apelido total em vez de HAVING para filtrar os grupos.
Tabelas
alunos 6 linhas
| id | nome | plano |
|---|---|---|
| 1 | Ana | Premium |
| 2 | Beto | Pro |
| 3 | Carol | Basico |
| 4 | Diego | Premium |
| 5 | Elisa | Pro |
| 6 | Fabio | Basico |
cursos 4 linhas
| id | nome | nivel |
|---|---|---|
| 1 | Analise | iniciante |
| 2 | Dados | iniciante |
| 3 | IA Avancada | avancado |
| 4 | Redes | intermediario |
matriculas 8 linhas
| id | status | valor_pago |
|---|---|---|
| 1 | ativa | 500 |
| 2 | ativa | 700 |
| 3 | concluida | 1200 |
| 4 | concluida | 800 |
| 5 | cancelada | 0 |
| 6 | ativa | 500 |
| 7 | concluida | NULL |
| 8 | cancelada | 200 |
Sua consulta
Escreva sua solução e verifique quando quiser.