Oi, Paula! Tudo bem?
Desde já, peço desculpas pela demora em retornar.
Para encontrar a quantidade de cidades por país, podemos utilizar a seguinte consulta:
SELECT country, COUNT(*) FROM locations
GROUP BY country
ORDER BY country ASC;
Como o critério de agrupamento partirá da quantidade de vezes que um país aparece em nossa tabela, não precisamos utilizar o campo city
em nosso SELECT
!
Para um melhor entendimento da consulta acima, a separei em algumas partes, observe:
- Inicialmente, estamos selecionando o campo
country
e obtendo, através da função COUNT(*)
, o total de registros da tabela locations
; - Depois disso, estamos usando a cláusula
GROUP BY
para agrupar os registros encontrados a partir do campo country
. Com isso, haverá uma mudança na contagem feita com o COUNT(*)
, que agora retornará os dados conforme o agrupamento; - Por fim, estamos ordenando a coluna
country
em ordem crescente.
Dessa forma, temos como resultado uma consulta com duas colunas:
- Coluna
country
, com o nome de cada país; - Coluna
COUNT(*)
, que mostra a quantidade de cidades por país.
Para deixar a visualização mais explicativa, podemos dar um apelido à coluna COUNT(*)
chamando-a de total_cities
(total de cidades):
SELECT country, COUNT(*) AS total_cities FROM locations
GROUP BY country
ORDER BY country ASC;
Note que, para darmos o apelido, utilizamos a cláusula AS
, que realiza justamente essa "nomeação".
Caso existam, por exemplo, três cidades do Brasil (o que significa dizer que este país aparece três vezes na tabela locations
), a nossa consulta apresentará o resultado abaixo:
country | total_cities |
---|
Brasil | 3 |
Paula, espero ter ajudado! Caso surja alguma dúvida após minha explicação, estarei aqui para conversarmos!
Até mais.
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!