Menu
Coddy logo textTech

Grouping Part 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 em cada registro separadamente. Por exemplo:

SELECT * FROM table1
WHERE col1 > col2

A condição col1 > col2 será executada em cada registro e verificará se ela é atendida.

Mas e se quisermos filtrar resultados agregados? Por exemplo:

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

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

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

Isso filtrará todas as categorias nas quais o preço médio é 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

Isso primeiro irá registro por registro e filtrará todos os registros em que o price seja maior que 25, e só depois disso executará a cláusula GROUP BY e filtrará cada category em que o price médio seja maior que 40.

challenge icon

Desafio

Médio

Tabelas e colunas disponíveis:

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

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 principais.

Um terremoto principal é 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)<sup>2</sup> / T, que é equivalente a M = ((A/T)*(A/T)) / T.

Retorne a localização e a magnitude média de cada localização incluindo apenas os terremotos principais (nomeie a coluna como avg_magnitude). Inclua em seu resultado apenas as localizações onde o avg_magnitude for 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