Agrupación, parte 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 > col2col1 > col2 se ejecutará en cada registro y comprobará si se cumple.
Pero ¿qué ocurre si queremos filtrar los resultados agregados? Por ejemplo:
SELECT category, AVG(price) FROM table1
WHERE AVG(price) > 40
GROUP BY categoryEsto no funcionará porque WHERE no puede comprobar ninguna agregación. Para eso tenemos la palabra clave HAVING. Filtra los datos según la condición agregada.
SELECT category, AVG(price) FROM table1
GROUP BY category
HAVING AVG(price) > 40Esto filtrará todas las categorías cuyo 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) > 40Primero recorrerá los registros uno por uno y filtrará todos aquellos cuyo precio sea mayor que 25, y solo después ejecutará la cláusula GROUP BY y filtrará cada categoría cuyo precio promedio sea mayor que 40.
Desafío
IntermedioTablas y columnas disponibles:
earthquakes:location,amplitude,period
La escala de Richter es una escala logarítmica utilizada para medir la magnitud de los terremotos.
Necesitamos devolver la magnitud media de cada ubicación de todos los terremotos importantes.
Un terremoto importante se define como:
- La amplitud es mayor o igual que 1
- El período de las ondas es mayor o igual que 1 minuto
Para este desafío, usaremos 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 y la magnitud media de cada ubicación, incluyendo únicamente los terremotos importantes (nombra la columna avg_magnitude). Incluye en el resultado únicamente las ubicaciones donde avg_magnitude sea mayor que 1.
Redondea los resultados a 2 decimales.
Pruébalo tú mismo
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Más palabras clave
La palabra clave INLa palabra clave BETWEENLa palabra clave LIKELa palabra clave ASRepaso: modelos de celulares2Condiciones
Conceptos básicos de las condicionesLa palabra clave ANDLa palabra clave ORLa palabra clave NOTCombinación de múltiples condicionesParéntesisBooleanos5Operaciones aritméticas
Operadores matemáticosColumnas matemáticasLa operación móduloLa función ROUND()3Formato de retorno específico
Valores nulosOrdenar resultados, parte 1Ordenar resultados, parte 2Repaso: empresa de ciberseguridadLimitar el número de registrosRepaso: fábrica de vehículos6Desafíos introductorios
Repaso - Elección parlamentariaRepaso - Detención policial de un criminalRepaso - Recipiente de bebida de barRepaso - Ingeniería de nuevas columnas9Múltiples tablas
Unión básica, parte 1Unión básica, parte 2Repaso: uniónAutouniónRepaso: autouniónUniónSimplificar consultas, palabra clave WITHRepaso: consultas WITHRepaso: contratista inmobiliario12Funciones de ventana, parte 2
Funciones RANK y DENSE_RANKRepaso: RANK y DENSE_RANKFunción NTILEFunciones de agregaciónCriterio ROWS y RANGEPractica por tu cuenta: Playground de SQL