SQL · SELECT y WHERE

SQL

SQL · SELECT y WHERE

Las consultas de partida sobre la tabla CITY: seleccionar columnas, filtrar con WHERE y encadenar condiciones, más las primeras agregaciones con COUNT, SUM y AVG.

Sep 11, 2026

6 min

HomeBlogsSQL · SELECT y WHERE

Esta serie mantiene la mente fresca resolviendo, uno a uno, los ejercicios de HackerRank. Cada entrada toma un tema concreto y lo agota; todas las consultas están en MySQL salvo donde se indique.

Te invito a intentar cada ejercicio antes de leer la solución.

Arrancamos por la tabla CITY: seleccionar, filtrar y contar. Nada de uniones todavía.

The CITY table is described as follows:

ColumnType
IDINT
NAMEVARCHAR
COUNTRYCODEVARCHAR
DISTRICTVARCHAR
POPULATIONINT

Revising the Select Query I

Query all columns for all American cities in the CITY table with populations larger than 100000. The CountryCode for America is USA.

Solución

Para resolver este problema usamos el operador de comparación > para filtrar las ciudades con una población mayor a 100000 habitantes. Además, como necesitamos que las ciudades sean de Estados Unidos, utilizamos el operador = para comparar el valor USA en la columna CountryCode. Como ambas condiciones deben cumplirse al mismo tiempo, se combinan usando el operador lógico AND.

SQL
SELECT * FROM City WHERE population > 100000 AND CountryCode = "USA";
IDNAMECOUNTRYCODEDISTRICTPOPULATION
3878ScottsdaleUSAArizona202705
3965CoronaUSACalifornia124966
3973ConcordUSACalifornia121780
3977Cedar RapidsUSAIowa120758
3982Coral SpringsUSAFlorida117549

Revising the Select Query II

Query the NAME field for all American cities in the CITY table with populations larger than 120000. The CountryCode for America is USA.

Solución

Siguiendo con la continuacion de la tabla CITY ahora nos pide solo seleccionar el campo NAME (ya que antes seleccionábamos todo usando * ) y lo demás sigue siendo igual, la diferencia solo radica que en vez de 100000 habitantes serán 120000

SQL
SELECT NAME FROM City WHERE population > 120000 AND CountryCode = "USA";
NAME
Scottsdale
Corona
Concord
Cedar Rapids

Select All

Query all columns (attributes) for every row in the CITY table.

Solución

SQL
SELECT * FROM City;
IDNAMECOUNTRYCODEDISTRICTPOPULATION
6RotterdamNLDZuid-Holland593321
3878ScottsdaleUSAArizona202705
3965CoronaUSACalifornia124966
3973ConcordUSACalifornia121780
3977Cedar RapidsUSAIowa120758
3982Coral SpringsUSAFlorida117549
4054FairfieldUSACalifornia92256
4058BoulderUSAColorado91238
4061Fall RiverUSAMassachusetts90555

Select By Id

Query all columns for a city in CITY with the ID 1661.

Solución

Usaremos el operador = para realizar la búsqueda en la columna ID

SQL
SELECT * FROM City WHERE ID = 1661;
IDNAMECOUNTRYCODEDISTRICTPOPULATION
1661SayamaJPNSaitama162472

Japanese Cities Attributes

Query all attributes of every Japanese city in the CITY table. The COUNTRYCODE for Japan is JPN.

Solución

Ahora sera lo mismo que la anterior vez, pero en vez de buscar el valor USA sera JPN

SQL
SELECT * FROM City WHERE COUNTRYCODE = 'JPN'
IDNAMECOUNTRYCODEDISTRICTPOPULATION
1613NeyagawaJPNOsaka257315
1630AgeoJPNSaitama209442
1661SayamaJPNSaitama162472
1681OmutaJPNFukuoka142889
1739TokuyamaJPNYamaguchi107078

Japanese Cities Name

Query the names of all the Japanese cities in the CITY table. The COUNTRYCODE for Japan is JPN.

Solución

Este es el mismo procedimiento del ejercicio anterior, pero solamente seleccionando name

SQL
SELECT name FROM City WHERE COUNTRYCODE = 'JPN'
NAME
Neyagawa
Ageo
Sayama
Omuta
Tokuyama

Normalmente, a medida que avanzamos, nos encontramos con ejercicios que coinciden con conceptos que ya hemos aplicado anteriormente. Como consejo para quienes lean este blog, además de estar en proceso de aprendizaje, les servirá de gran ayuda afianzar términos y operadores en la práctica, sin dejar de lado el hecho de que pudieron haber resuelto el mismo problema en un solo ejercicio.

Revising Aggregations - The Count Function

Query a count of the number of cities in CITY having a Population larger than 100000.

Solución

Usamos la función COUNT para poder realizar conteo de ciudades y con WHERE y el operador > filtramos cuyas ciudades tengan una población mayor a 100000

SQL
SELECT COUNT(NAME) FROM City WHERE POPULATION > 100000;

Revising Aggregations - The Sum Function

Query the total population of all cities in CITY where District is California.

Solución

Para este ejercicio, debemos obtener la población total de todas las ciudades en la tabla CITY cuyo District sea California. Para lograrlo, utilizamos la función SUM para sumar la población de cada ciudad que cumpla con esa condición.

SQL
SELECT SUM(POPULATION) FROM CITY WHERE DISTRICT = "California";

Revising Aggregations - Averages

Query the average population of all cities in CITY where District is California.

Solución

Debemos obtener el promedio de la población de todas las ciudades en la tabla CITY cuyo District sea California. Para lograrlo, utilizamos la función AVG sobre la columna POPULATION, aplicando la condición con WHERE. Es importante notar que AVG calcula el promedio, no la suma.

SQL
SELECT AVG(POPULATION) FROM CITY WHERE DISTRICT = "California";

Average Population

Query the average population for all cities in CITY, rounded down to the nearest integer.

Solución

Para obtener el promedio de la población de todas las ciudades y redondearlo hacia abajo al entero más cercano, usamos AVG(POPULATION) para calcular el promedio y FLOOR() para redondear hacia abajo

SQL
SELECT FLOOR(AVG(POPULATION)) FROM CITY;

Japan Population

Query the sum of the populations for all Japanese cities in CITY. The COUNTRYCODE for Japan is JPN.

Solución

Utilizamos la función SUM para sumar la población de cada ciudad que tenga en su COUNTRYCODE el valor JPN .

SQL
SELECT SUM(POPULATION) FROM CITY WHERE COUNTRYCODE = "JPN";

Population Density Difference

Query the difference between the maximum and minimum populations in CITY.

Solución

Aquí solo realizamos una resta entre la población máxima y mínima, para saber la diferencia entre ellas.

SQL
SELECT MAX(POPULATION) - MIN(POPULATION) FROM CITY;