Quest-ce que le self en Python ? Exemples concrets
Qu'est-ce que le self en Python ? Exemples concrets
Dans ce didacticiel, nous discuterons de quelques façons d'utiliser ou d'exécuter la clause HAVING dans les fonctions d'agrégation SQL . L'utilisation de cette clause dans les fonctions d'agrégation SQL peut grandement faciliter la synthèse des données.
La clause HAVING est presque similaire à l'instruction WHERE et peut également être exécutée avec elle.
Nous discuterons de leurs corrélations et de leurs différences en fournissant des exemples au fur et à mesure de ce didacticiel.
Table des matières
Instructions GROUP BY et WHERE en SQL
Pour notre premier exemple, nous verrons comment exécuter la clause WHERE et GROUP BY à l'aide de l'exemple de table ci-dessous. Veuillez noter que nous ne pouvons utiliser la clause WHERE qu'avec des colonnes existantes et non dans les fonctions d'agrégation uniquement.
Supposons que nous voulions obtenir les ventes totales d'un produit en fonction de sa colonne SaleAmount où la valeur est supérieure à 2 . Pour obtenir le résultat, notre commande doit être la suivante :
Tout d'abord, nous sélectionnons le ProductName et agrégeons le SaleAmount pour obtenir le TotalSales.
Ensuite, nous avons utilisé l' instruction WHERE ici puisque nous essayons d'obtenir uniquement les produits où le SaleAmount est supérieur à 2. La commande 'GROUP BY ProductName' indique qu'elle regroupera les lignes sous la colonne ProductName en une seule.
En exécutant notre ensemble de commandes, nous verrons que parmi toutes les données sous les colonnes ProductName et SaleAmount , seuls Bulb et Fan étaient affichés. C'est parce qu'ils étaient les seuls à avoir un SaleAmount supérieur à 2.
Dans cet exemple, l' instruction WHERE sert à filtrer les résultats avec une colonne existante, qui est notre SaleAmount . Notez également que l' instruction WHERE apparaît avant GROUP BY et ne peut pas être utilisée pour filtrer les fonctions d'agrégation. D'autre part, la clause HAVING apparaît après GROUP BY et est utilisée pour le filtrage basé sur une fonction d'agrégation.
Clause GROUP BY et HAVING en SQL
Dans cet exemple, nous allons montrer la différence entre l' instruction WHERE et la clause HAVING . Nous utiliserons le même objectif que dans l'exemple précédent afin de pouvoir comparer et évaluer les résultats.
Commençons par afficher les produits avec leurs ventes totales à l'aide de la commande ci-dessous. Comme vous pouvez le voir, notre première commande est toujours la même que notre première commande exécutant l' instruction WHERE .
Si nous devons exécuter nos deux premières commandes, nous aurons le résultat suivant :
Maintenant, disons que nous ne voulons afficher que les produits dont la vente totale est supérieure à 5. Nous ne pouvons pas utiliser l' instruction WHERE car elle ne peut être utilisée qu'avec des colonnes existantes. Par conséquent, nous devons utiliser la clause HAVING car nous allons filtrer à partir d'une fonction d'agrégation.
Remarquez comment nous utilisons la clause HAVING après GROUP BY contrairement à l' instruction WHERE utilisée avant GROUP BY. En effet, le SQL regroupera les enregistrements avant d'évaluer la clause HAVING .
Exécutons ensuite ces commandes avec HAVING SUM(SaleAmount)>5 . Après avoir précisé que nous ne voulons obtenir que les produits dont le prix total est supérieur à 5, nous remarquerons que dans notre tableau de résultats actuel, nous ne verrons plus le stylo . C'est parce que son total est inférieur à 5 .
En bref, lorsque nous voulons filtrer les données de notre table en fonction d'une colonne existante, nous utilisons la clause WHERE , alors que lorsque nous voulons filtrer les données d'une fonction d'agrégation, nous utilisons la clause HAVING .
Clause HAVING et WHERE dans SQL Server Management Studio (SSMS)
Maintenant, nous allons avancer en discutant et en démontrant comment nous pouvons exécuter la clause HAVING dans SQL Server Management Studio (SSMS). Nous aborderons également la différence entre la clause HAVING et la clause WHERE en fournissant des exemples.
Vous trouverez ci-dessous notre exemple de données SalesOrderHeader. Ces données se composent de 100 lignes. Pour notre exemple, nous voulons obtenir TotalSale par CustomerID où TotalSale est supérieur à 10000 . Notez que la vente totale est basée sur la somme des valeurs de la colonne TotalDue .
Tout d'abord, laissez-moi vous montrer pourquoi nous ne pouvons pas utiliser la clause WHERE lorsque nous voulons filtrer sur une fonction d'agrégation basée sur notre exemple ci-dessus.
Nous utiliserons l'exemple de jeu de commandes de l'image ci-dessous. Comme vous pouvez le voir, nous avons techniquement le même ensemble de commandes que celui que nous avons dans notre tout premier exemple.
Cependant, lorsque nous cliquons sur Exécuter dans le coin supérieur gauche, cela entraînera une erreur car nous ne pouvons pas utiliser la clause WHERE seule lorsque nous filtrons sur la fonction d'agrégation.
Pour corriger l'erreur, nous devons filtrer le résultat en utilisant la clause HAVING au lieu de la clause WHERE . Notre nouvel ensemble de commandes devrait ressembler à l'image ci-dessous.
Maintenant, nous pouvons voir que notre erreur a été corrigée et contient les résultats par CustomerID avec un TotalSale supérieur à 10000 .
Encore une fois, la clause WHERE est toujours utilisée avant la clause GROUP BY , tandis que la clause HAVING est toujours utilisée après une clause GROUP BY .
Utilisation de la clause HAVING et de la clause WHERE en SQL
Pour cet exemple, disons que nous voulons utiliser les clauses WHERE et HAVING en même temps. Essayons d'obtenir le TotalSale par CustomerID où TotalSale est supérieur à 10000 mais uniquement avec des clients où leur TerritoryID est égal à 1 .
Puisque nous voulons filtrer les résultats avec les clients qui ont 1 comme TerritoryID , nous utiliserons la clause WHERE. Notre commande devrait donc être la même que la précédente. Encore une fois, nous avons ajouté une clause WHERE avant la clause GROUP BY.
Pour l'instant, nous ne voyons pas beaucoup de différence entre notre précédent résultat et ce nouveau. Cependant, si vous regardez attentivement le coin inférieur droit, nous n'avons plus que 64 lignes par rapport à la précédente avec 505 lignes de données. En effet, les résultats sont également filtrés en fonction de leur TerritoryID .
Conclusion
Pour résumer, nous ne pouvons utiliser la clause WHERE qu'avec des colonnes existantes. Si nous devons filtrer avec des fonctions agrégées, nous devons utiliser la clause HAVING à la place.
L'utilisation de la clause HAVING dans les fonctions d'agrégation SQL et la pratique des méthodes d'exécution conjointes de la clause HAVING et de la clause WHERE peuvent être pratiques pour les utilisateurs lorsqu'ils travaillent sur un grand nombre de données ou d'enregistrements.
J'espère vous avoir fourni suffisamment d'informations et de compréhension sur l'utilisation de la clause HAVING dans les fonctions d'agrégation SQL. Si vous souhaitez en savoir plus sur ce sujet et d'autres contenus connexes, vous pouvez certainement consulter la liste des liens pertinents ci-dessous.
Tous mes vœux,
Hafiz
Qu'est-ce que le self en Python ? Exemples concrets
Vous apprendrez à enregistrer et à charger des objets à partir d'un fichier .rds dans R. Ce blog expliquera également comment importer des objets de R vers LuckyTemplates.
Dans ce didacticiel sur le langage de codage DAX, découvrez comment utiliser la fonction GENERATE et comment modifier dynamiquement le titre d'une mesure.
Ce didacticiel explique comment utiliser la technique Multi Threaded Dynamic Visuals pour créer des informations à partir de visualisations de données dynamiques dans vos rapports.
Dans cet article, je vais parcourir le contexte du filtre. Le contexte de filtrage est l'un des principaux sujets que tout utilisateur de LuckyTemplates doit d'abord connaître.
Je souhaite montrer comment le service en ligne LuckyTemplates Apps peut aider à gérer différents rapports et informations générés à partir de diverses sources.
Découvrez comment calculer les modifications de votre marge bénéficiaire à l'aide de techniques telles que la création de branches de mesure et la combinaison de formules DAX dans LuckyTemplates.
Ce didacticiel abordera les idées de matérialisation des caches de données et comment elles affectent les performances des DAX dans la fourniture de résultats.
Si vous utilisez encore Excel jusqu'à présent, c'est le meilleur moment pour commencer à utiliser LuckyTemplates pour vos besoins en matière de rapports commerciaux.
Qu'est-ce que la passerelle LuckyTemplates ? Tout ce que tu as besoin de savoir