Escreva o códigoDesafioSQL
Ranking de vendas com preço conhecido
Contar vendas com valor preenchido por categoria das maiores para menores.
Desconsidere as linhas da tabela vendas com valor nulo. Devolva categoria e total, nessa ordem, onde total é COUNT(*) nomeado com AS total. Agrupe por categoria e ordene por total decrescente, desempatando por categoria crescente.
Revisa etapa da trilha 5, etapa da trilha 6, etapa da trilha 7
Solução comentada
Verifique uma tentativa sua para liberar a solução.
SELECT categoria, COUNT(*) AS total FROM vendas WHERE valor IS NOT NULL GROUP BY categoria ORDER BY total DESC, categoria ASCWHERE com IS NOT NULL remove linhas com valor desconhecido antes de contar. GROUP BY cria um grupo por categoria e COUNT(*) conta as linhas restantes. ORDER BY ordena pela contagem com DESC e usa categoria com ASC para desempatar.
Erro comum: Usar valor = NULL em vez de valor IS NOT NULL para filtrar desconhecidos.
Tabelas
vendas 12 linhas
| id | categoria | valor | ano | mes |
|---|---|---|---|---|
| 1 | calcados | 120 | 2023 | 1 |
| 2 | calcados | 80 | 2023 | 2 |
| 3 | vestuario | 50 | 2023 | 1 |
| 4 | vestuario | 50 | 2023 | 2 |
| 5 | eletronicos | 500 | 2023 | 1 |
| 6 | eletronicos | 300 | 2024 | 1 |
| 7 | calcados | 200 | 2024 | 1 |
| 8 | vestuario | 90 | 2024 | 3 |
| 9 | eletronicos | NULL | 2024 | 2 |
| 10 | calcados | 120 | 2024 | 2 |
| 11 | vestuario | 70 | 2023 | 3 |
| 12 | eletronicos | 500 | 2024 | 3 |
Escreva sua solução e verifique quando quiser.