Stack Overflow em Português Asked by Gustavo Bium Donadon on December 30, 2021
Tenho uma tabela onde contém o valor de venda de alguns estados do Brasil, gostaria de realizar uma consulta que me retornasse o valor de venda dos estados de SP e RJ, e para os outros estados ele me retornasse a soma do que é diferente disso.
Para exemplificar imaginemos que tenho essa tabela
Gostaria que a consulta me retornasse
SP (20), RJ (30), Outros (85).
Sou bem iniciante em SQL e estou com um pouco de dificuldades
Com esse código consigo trazer todas as vendas separadas porém não consigo agrupar os que são diferentes de SP e RJ
SELECT ESTADO, SUM(VALOR_VENDA) FROM vendas GROUP BY ESTADO ORDER BY ESTADO ASC;
Alguém poderia me dar uma luz?
Ou
SELECT (CASE WHEN ESTADO NOT IN ('RJ','SP') THEN 'OUTROS' ELSE ESTADO END) ESTADO,
SUM(VALOR_VENDA)
FROM vendas
GROUP BY (CASE WHEN ESTADO NOT IN ('RJ','SP') THEN 'OUTROS' ELSE ESTADO END)
ORDER BY (CASE WHEN ESTADO NOT IN ('RJ','SP') THEN 'OUTROS' ELSE ESTADO END) ASC
Answered by Motta on December 30, 2021
Uma possibilidade é utilizar CASE / WHEN:
SELECT SUM(CASE WHEN estado = 'SP' THEN Vendas ELSE 0) AS SP,
SUM(CASE WHEN estado = 'RJ' THEN Vendas ELSE 0) AS RJ,
SUM(CASE WHEN estado <> 'SP' AND estado <> 'RJ' THEN Vendas ELSE 0) AS OUTROS
FROM sua_tabela;
Uma linha com três colunas com os valores desejados.
Answered by anonimo on December 30, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP