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!