Somar valores de duas tabelas e depois mostrar o maior
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.
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.
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
Curtidas 0
Melhor post
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
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
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.
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.
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
17/04/2020
Funcionou, obrigado. Não tinha conhecimento dos comandos DESC e LIMIT.
GOSTEI 1
Erik Moreira
17/04/2020
Então agora é só dar uma estudada neles que é bem simples.
GOSTEI 1