Menu
Coddy logo textTech

Grouping Part 2

Parte de la sección Fundamentos del Journey de SQL de Coddy — lección 37 de 72.

La palabra clave WHERE ejecuta una condición en cada registro por separado. Por ejemplo:

SELECT * FROM table1
WHERE col1 > col2

La condición col1 > col2 se ejecutará en cada registro y verificará si se cumple.

¿Pero qué pasa si queremos filtrar resultados agregados? Por ejemplo:

SELECT category, AVG(price) FROM table1
WHERE AVG(price) > 40
GROUP BY category

Esto no funcionará porque WHERE no puede comprobar ninguna agregación. Para eso, tenemos la palabra clave HAVING. Filtra los datos por la condición de agregación.

SELECT category, AVG(price) FROM table1
GROUP BY category
HAVING AVG(price) > 40

Esto filtrará todas las categorías para las cuales el precio promedio sea mayor que 40.

Si queremos combinar las cláusulas HAVING y WHERE escribiremos:

SELECT category, AVG(price) FROM table1
WHERE price > 25
GROUP BY category
HAVING AVG(price) > 40

Esto irá primero registro por registro y filtrará todos los registros para los cuales el price es mayor que 25, y solo después de eso ejecutará la cláusula GROUP BY y filtrará cada category para la cual el precio promedio es mayor que 40.

challenge icon

Desafío

Intermedio

Tablas y columnas disponibles:

  • <strong>earthquakes</strong>: <strong>location</strong>, <strong>amplitude</strong>, <strong>period</strong>

La escala de Richter es una escala logarítmica utilizada para medir la magnitud de los terremotos.

Necesitamos devolver la magnitud promedio para cada ubicación de todos los terremotos principales

Un terremoto principal se define como:

  • La amplitud es mayor o igual a 1
  • El período de las olas es mayor o igual a 1 minuto

Para este desafío, utilizaremos una fórmula diferente: M = (A/T)<sup>2</sup> / T, que es equivalente a M = ((A/T)*(A/T)) / T.

Devuelve la ubicación (location) y la magnitud promedio de cada ubicación incluyendo únicamente los terremotos principales (nombra la columna avg_magnitude). Incluye en tu resultado solo las ubicaciones donde el avg_magnitude sea mayor que 1

Redondea los resultados a 2 decimales

Pruébalo tú mismo

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos