Agrégats intégrés, partie 2
Fait partie de la section Les fondamentaux du Journey SQL de Coddy. Leçon 35 sur 72.
Parfois, nous devons utiliser des fonctions d’agrégation de manière plus complexe, par exemple en comparant chaque ligne à une valeur agrégée. C’est là que les requêtes imbriquées se révèlent utiles.
Lorsque vous souhaitez effectuer des calculs qui combinent des lignes individuelles avec des valeurs agrégées, vous devez utiliser une requête imbriquée. Voici pourquoi :
Cette requête ne donnera pas le résultat par ligne que vous recherchez :
SELECT value + MIN(value)
FROM table1La raison est que les fonctions d’agrégation s’appliquent à l’ensemble de la colonne, tandis que la référence 'value' essaie de fonctionner ligne par ligne. Pour résoudre ce problème, nous utilisons une requête imbriquée :
SELECT value + (SELECT MIN(value) FROM table1)
FROM table1Cela fonctionne parce que la requête imbriquée (SELECT MIN(value) FROM table1) est exécutée en premier et renvoie une seule valeur, qui peut ensuite être utilisée dans la requête principale pour chaque ligne.
Cas d’utilisation courants des agrégats imbriqués :
1. Comparer chaque valeur à la moyenne
2. Calcul du pourcentage du total
3. Trouver les différences par rapport aux valeurs maximales ou minimales
Défi
FacileTables et colonnes disponibles :
items:id,price
Calculez de combien le prix de chaque élément dépasse le prix moyen de tous les éléments. Affichez l’identifiant de l’élément, son prix et la différence par rapport à la moyenne. Nommez la colonne de différence diff_from_avg.
Triez les résultats par différence, dans l’ordre décroissant.
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