La clause PostgreSQL a été étroitement utilisée en conjonction avec le groupe par déclaration, restreignant le résultat uniquement aux lignes qui répondent à l'état de la clause.
Utilisation de base
La syntaxe la plus élémentaire pour la clause de présentation est:
Sélectionnez COL_LIST dans le groupe Table_Name par Col ayant une condition;Dans la syntaxe exprimée ci-dessus, la clause a filtre les groupes, puis le groupe par clause les trie par la colonne spécifiée.
Cela signifie que seules les colonnes qui répondent à l'état de la clause qui sera dans le groupe par clause.
La clause ayant une priorité inférieure à celle des autres clauses telles que SELECT, où et le groupe par.
Si vous devez inclure une déclaration de commande dans la requête, assurez-vous de l'ajouter après la clause d'avoir une priorité inférieure à la clause.
Exemple 1
Illustrons comment utiliser la clause ayant à l'aide d'un exemple du monde réel. Pour cette illustration, nous utiliserons la base de données d'échantillon Sakila.
Select Film_id, titre, release_year, longueur du groupe de films par film_id ayant une somme (longueur)> 150 limite 10;Dans l'exemple ci-dessus, nous sélectionnons les colonnes spécifiées dans la table de film où la somme de la longueur de chaque film_id est supérieure à 150.
La requête ci-dessus ne doit retourner que les films où la longueur était supérieure à 150 groupées par film_id.
Voici un exemple de sortie:
Exemple 2
Nous pouvons également utiliser la clause ayant avec d'autres fonctions agrégées. Un exemple est les fonctions min et max.
SELECT PAYS_ID, client_id, Montant du groupe de paiement par paiement_id ayant max (montant)> 10 limite 5;La requête ci-dessus doit renvoyer les valeurs où le montant est supérieur à 10.
Exemple 3
Vous pouvez également utiliser la clause ayant avec la clause WHERE. Par exemple:
Sélectionner le paiement_id,Dans ce cas, nous regroupons par le paiement_id tous les enregistrements dont la valeur maximale est inférieure à 5 et l'ID de location est supérieur à 10000 (déterminé par la clause WHERE).
En résumé
La clause PostgreSQL vous permet de filtrer les résultats qui satisfont à une condition agrégée spécifique.