Menu
CoddyTech

Regroupement, partie 2

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

Le mot-clé WHERE applique une condition à chaque enregistrement séparément. Par exemple :

SELECT * FROM table1
WHERE col1 > col2

col1 > col2 sera évalué pour chaque enregistrement afin de vérifier si la condition est satisfaite.

Mais que faire si nous voulons filtrer les 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 vérifier aucune agrégation. 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 dont 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

Il parcourra d’abord les enregistrements un par un et filtrera tous ceux dont le prix est supérieur à 25, puis seulement après il exécutera la clause GROUP BY et filtrera chaque catégorie dont le prix moyen est supérieur à 40.

challenge icon

Défi

Moyen

Tables et colonnes disponibles :

  • earthquakes : location, amplitude, period

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

Nous devons renvoyer la magnitude moyenne de chaque lieu pour tous les séismes majeurs

Un séisme majeur est défini comme suit :

  • 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)^2 / T, qui équivaut à M = ((A/T)*(A/T)) / T. Ici, M est la magnitude, A est la colonne amplitude et T est la colonne period.

Renvoyez le lieu et la magnitude moyenne de chaque lieu en incluant uniquement les séismes majeurs (nommez la colonne avg_magnitude). N’incluez dans votre résultat que les lieux où 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

Entraînez-vous par vous-même : Playground SQL