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 > col2La 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 categoryCela 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) > 40Cela 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) > 40Cette 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.
Défi
MoyenTables 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
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
1Introduction
IntroductionQu’est-ce qu’une base de donnéesConcepts des bases de donnéesValeurs uniques4D’autres mots-clés
Le mot-clé INLe mot-clé BETWEENLe mot-clé LIKELe mot-clé ASRécapitulatif - Modèles de téléphones portables2Conditions
Bases des conditionsLe mot-clé ANDLe mot-clé ORLe mot-clé NOTCombinaison de plusieurs conditionsParenthèsesBooléens5Opérations arithmétiques
Opérateurs mathématiquesColonnes mathématiquesL’opération moduloLa fonction ROUND()3Format de retour spécifique
Valeurs NULLTrier les résultats, partie 1Trier les résultats, partie 2Récapitulatif - Entreprise de cybersécuritéLimiter le nombre d’enregistrementsRécapitulatif - Usine de véhicules6Défis d’introduction
Récapitulatif - Élection parlementaireRécapitulatif - Arrestation criminelle par la policeRécapitulatif - Récipient de boisson au barRécapitulatif - Ingénieur de nouvelles colonnes9Tables multiples
Jointure de base, partie 1Jointure de base, partie 2Récapitulatif - JointureAuto-jointureRécapitulatif - Auto-jointureUnionSimplifier les requêtes, mot-clé WITHRécapitulatif - Requêtes WITHRécapitulatif - Entrepreneur immobilier12Fonctions de fenêtre – partie 2
Fonctions RANK & DENSE_RANKRécapitulatif – RANK & DENSE_RANKFonction NTILEFonctions d’agrégationCritère ROWS & RANGEEntraînez-vous par vous-même : Playground SQL