Escreva o códigoDesafioSQL
Receita de setembro ordenada
Resumir setembro por curso com três agregações e ordem.
Para setembro de 2026 filtre data_matricula com LIKE e '2026-09%'. Devolva id_curso, total, receita e ticket nessa ordem, uma linha por id_curso, onde total é COUNT(*), receita é SUM(preco) e ticket é AVG(preco). Mostre só cursos com mais de 1 matrícula com HAVING e ordene por receita decrescente com ORDER BY.
Revisa aula 16 (17/09), aula 13 (03/09)
Solução comentada
Verifique uma tentativa sua para liberar a solução.
SELECT id_curso, COUNT(*) AS total, SUM(preco) AS receita, AVG(preco) AS ticket FROM matriculas WHERE data_matricula LIKE '2026-09%' GROUP BY id_curso HAVING COUNT(*) > 1 ORDER BY receita DESCWHERE com LIKE isola setembro antes de agrupar por id_curso. No mesmo SELECT dá para calcular COUNT, SUM e AVG juntos. O HAVING filtra grupos e o ORDER BY receita DESC deixa a maior receita primeiro.
Erro comum: Ordenar por id_curso em vez de receita e perder a ordem de negócio.
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 |
Escreva sua solução e verifique quando quiser.