Menu
Coddy logo textTech

Regroupement, partie 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 séparément sur chaque enregistrement. Par exemple :

SELECT * FROM table1
WHERE col1 > col2

La condition col1 > col2 sera exécutée sur chaque enregistrement et vérifiera si elle 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

Cette opération parcourra d’abord les enregistrements un par un et filtrera tous ceux dont le prix est supérieur à 25, puis seulement après elle 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 pour chaque emplacement de l’ensemble des 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)<sup>2</sup> / T, qui est équivalente à M = ((A/T)*(A/T)) / T.

Renvoyez l’emplacement et la magnitude moyenne de chaque emplacement en n’incluant que les séismes majeurs (nommez la colonne avg_magnitude). N’incluez dans votre résultat que les emplacements 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

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