Menu
Coddy logo textTech

Grouping Part 2

Fait partie de la section Les fondamentaux du Journey SQL de Coddy — leçon 37 sur 72.

Le mot-clé WHERE exécute une condition sur chaque enregistrement séparément. Par exemple :

SELECT * FROM table1
WHERE col1 > col2

La condition col1 > col2 sera exécutée sur chaque enregistrement pour vérifier si elle est remplie.

Mais que faire si nous voulons filtrer des résultats agrégés ? Par exemple :

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

Cela ne fonctionnera pas car WHERE ne peut pas vérifier les agrégations. Pour cela, nous avons le mot-clé HAVING. Il filtre les données selon la condition d'agrégation.

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

Cela filtrera toutes les catégories pour lesquelles le prix moyen est supérieur à 40.

Si nous voulons combiner les clauses HAVING et WHERE, nous écrirons :

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

Cela va d'abord parcourir enregistrement par enregistrement et filtrer tous les enregistrements pour lesquels le price est supérieur à 25, et ce n'est qu'après cela qu'il exécutera la clause GROUP BY et filtrera chaque category pour laquelle le prix moyen est supérieur à 40.

challenge icon

Défi

Moyen

Tables et colonnes disponibles :

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

L'échelle de Richter est une échelle logarithmique utilisée pour mesurer la magnitude des séismes.

Nous devons retourner la magnitude moyenne pour chaque localisation parmi tous les séismes majeurs.

Un séisme majeur est défini ainsi :

  • L'amplitude est supérieure ou égale à 1
  • La période des ondes est supérieure ou égale à 1 minute

Pour ce défi, nous utiliserons une formule différente : M = (A/T)<sup>2</sup> / T, ce qui est équivalent à M = ((A/T)*(A/T)) / T.

Retournez la localisation et la magnitude moyenne de chaque localisation en incluant uniquement les séismes majeurs (nommez la colonne avg_magnitude). N'incluez dans votre résultat que les localisations où la avg_magnitude est supérieure à 1.

Arrondissez les résultats à 2 décimales.

Essayez vous-même

quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Les fondamentaux