Menu
CoddyTech

Agrupamento – Parte 2

Parte da seção Fundamentos do Journey de SQL da Coddy. Lição 37 de 72.

A palavra-chave WHERE executa uma condição separadamente em cada registro. Por exemplo:

SELECT * FROM table1
WHERE col1 > col2

col1 > col2 será executado em cada registro e verificará se a condição é atendida.

Mas e se quisermos filtrar resultados agregados? Por exemplo:

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

Isso não funcionará porque WHERE não pode verificar nenhuma agregação. Para isso, temos a palavra-chave HAVING. Ela filtra os dados pela condição de agregação.

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

Isso filtrará todas as categorias cujo preço médio seja maior que 40.

Se quisermos combinar as cláusulas HAVING e WHERE, escreveremos:

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

Primeiro, isso percorrerá os registros um por um e filtrará todos os registros cujo preço seja maior que 25 e, somente depois disso, executará a cláusula GROUP BY e filtrará cada categoria cuja média de preço seja maior que 40.

challenge icon

Desafio

Médio

Tabelas e colunas disponíveis:

  • earthquakes: location, amplitude, period

A escala Richter é uma escala logarítmica usada para medir a magnitude dos terremotos.

Precisamos retornar a magnitude média para cada localização de todos os terremotos de grande magnitude.

Um terremoto de grande magnitude é definido como:

  • A amplitude é maior ou igual a 1
  • O período das ondas é maior ou igual a 1 minuto

Para este desafio, usaremos uma fórmula diferente: M = (A/T)^2 / T, que é equivalente a M = ((A/T)*(A/T)) / T. Aqui, M é a magnitude, A é a coluna amplitude e T é a coluna period.

Retorne a localização e a magnitude média de cada localização, incluindo apenas os terremotos de grande magnitude (nomeie a coluna como avg_magnitude). Inclua no resultado apenas as localizações onde avg_magnitude é maior que 1.

Arredonde os resultados para 2 casas decimais.

Experimente você mesmo

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos

Pratique por conta própria: Playground de SQL