Somar valores de duas tabelas e depois mostrar o maior

SQL

PostgreSQL

17/04/2020

Boa noite, estou estagnado aqui numa questão do trabalho onde ele quer que eu mostre o nome do estado com a maior população, eu já consegui mostrar a população de todos os estados mas na hora de exibir somente o maior eu não consegui fazer, vou botar aqui abaixo o que eu consegui mas não esta certo.

SELECT e.nome, SUM(m.populacao) pop
	FROM municipio m
	INNER JOIN estado e
	ON e.codestado = m.codestado
	GROUP BY e.nome
	HAVING SUM(m.populacao) > 30000000


Imagino que seja nesse caminho, mas não sei como exibir o resultado sem usar esse having, assim esta errado pois eu sei que o estado que tem mais população é são paulo então botei maior que 30.000.000.
Kauano

Kauano

Curtidas 0

Melhor post

Erik Moreira

Erik Moreira

17/04/2020

Kauano, boa noite!

Segue a solução que acredito que possa te ajudar:

SELECT e.nome,
SUM(m.populacao) pop
FROM municipio m
INNER JOIN estado e
ON ( e.codestado = m.codestado )
GROUP BY e.nome
ORDER BY pop DESC
LIMIT 1

O que foi feito:

- Removi o HAVING
- Adicionei o ORDER BY pop DESC (Irá ordenar de acordo com o maior volume de população)
- Adicionei o LIMIT 1 que irá trazer somente a primeira linha e como utilizamos o ORDER BY pop DESC será a maior população

GOSTEI 1

Mais Respostas

Erik Moreira

Erik Moreira

17/04/2020

Boa noite, estou estagnado aqui numa questão do trabalho onde ele quer que eu mostre o nome do estado com a maior população, eu já consegui mostrar a população de todos os estados mas na hora de exibir somente o maior eu não consegui fazer, vou botar aqui abaixo o que eu consegui mas não esta certo.

SELECT e.nome, SUM(m.populacao) pop
	FROM municipio m
	INNER JOIN estado e
	ON e.codestado = m.codestado
	GROUP BY e.nome
	HAVING SUM(m.populacao) > 30000000


Imagino que seja nesse caminho, mas não sei como exibir o resultado sem usar esse having, assim esta errado pois eu sei que o estado que tem mais população é são paulo então botei maior que 30.000.000.
GOSTEI 0
Kauano

Kauano

17/04/2020

Funcionou, obrigado. Não tinha conhecimento dos comandos DESC e LIMIT.
GOSTEI 1
Erik Moreira

Erik Moreira

17/04/2020

Então agora é só dar uma estudada neles que é bem simples.

GOSTEI 1
POSTAR