Escreva o códigoPráticaSQL
Faturamento alto em duas cidades
Combinar WHERE com IN e HAVING para somar por grupo.
Da tabela vendas, fique só com as linhas cuja cidade seja sao paulo ou rio de janeiro. Agrupe por categoria e some valor como total. Devolva as colunas categoria e total só para os grupos com total maior que 100.
Revisa etapa da trilha 6, etapa da trilha 8
Solução comentada
Verifique uma tentativa sua para liberar a solução.
SELECT categoria, SUM(valor) AS total FROM vendas WHERE cidade IN ('sao paulo', 'rio de janeiro') GROUP BY categoria HAVING SUM(valor) > 100WHERE com IN filtra as linhas antes de agrupar, ficando só com sao paulo e rio de janeiro. GROUP BY com SUM(valor) soma o valor por categoria e ignora o NULL. HAVING mantém só os grupos com total maior que 100.
Erro comum: Esquecer o filtro com IN e somar todas as linhas antes do HAVING.
Tabelas
vendas 10 linhas
| id | categoria | cidade | valor | ano |
|---|---|---|---|---|
| 1 | calcados | sao paulo | 120 | 2024 |
| 2 | calcados | sao paulo | 80 | 2024 |
| 3 | vestuario | rio de janeiro | 50 | 2024 |
| 4 | vestuario | rio de janeiro | 40 | 2024 |
| 5 | vestuario | belo horizonte | 30 | 2023 |
| 6 | eletronicos | sao paulo | 500 | 2024 |
| 7 | eletronicos | rio de janeiro | NULL | 2024 |
| 8 | livros | sao paulo | 25 | 2024 |
| 9 | livros | sao paulo | 25 | 2024 |
| 10 | livros | curitiba | 20 | 2023 |
Escreva sua solução e verifique quando quiser.