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 > col2A 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 categoryIsto 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) > 40Isso 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) > 40Isso 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.
Desafio
MédioTabelas 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
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
4More Keywords
The IN keywordThe BETWEEN keywordThe LIKE keywordThe AS keywordRecap - Cellphone Models2Conditions
Conditions BasicsThe AND keywordThe OR keywordThe NOT keywordMultiple Conditions CombinedParenthesisBooleans5Arithmetic Operations
Mathematical OperatorsMathematical ColumnsThe Modulo OperationThe ROUND() Function3Specific Return Format
Null valuesSort Results Part 1Sort Results Part 2Recap - Cyber Security FirmLimit number of recordsRecap - Vehicle Factory6Intro Challenges
Recap - Parliamentary ElectionRecap - Police Criminal ArrestRecap - Bar Beverage ContainerRecap - Engineer new columns