Escreva o códigoDesafioSQL
Ticket medio por status
Comparar a média de valor_pago entre ativa e concluida.
Da tabela matriculas, fique só com status em ativa e concluida usando WHERE com IN. Devolva status e media nessa ordem com a média de valor_pago por status só para médias acima de 500 usando HAVING.
Revisa aula 13 (03/09), aula 12 (31/08)
Solução comentada
Verifique uma tentativa sua para liberar a solução.
SELECT status, AVG(valor_pago) AS media FROM matriculas WHERE status IN ('ativa', 'concluida') GROUP BY status HAVING media > 500;O WHERE com IN escolhe só ativa e concluida antes de agrupar. O GROUP BY com AVG(valor_pago) calcula a média por status e o HAVING mantém só médias com media acima de 500.
Erro comum: Filtrar a média com WHERE media > 500 em vez de HAVING depois do GROUP BY.
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.