Maison > base de données > Oracle > La différence entre où et avoir dans Oracle

La différence entre où et avoir dans Oracle

下次还敢
Libérer: 2024-05-02 23:12:18
original
1031 Les gens l'ont consulté

La différence entre les clauses WHERE et HAVING réside dans la portée : WHERE filtre les lignes de base et HAVING filtre l'ensemble de résultats groupés. WHERE est utilisé pour les conditions à une seule ligne et HAVING est utilisé pour les conditions de résultat de groupe. WHERE vient après FROM et avant SELECT, HAVING vient après GROUP BY. WHERE peut être utilisé seul, HAVING doit être utilisé avec une opération de groupe.

La différence entre où et avoir dans Oracle

Différence entre les clauses WHERE et HAVING dans Oracle

WHERE et HAVING sont deux clauses SQL utilisées pour filtrer l'ensemble de données. La principale différence entre eux est leur portée :

1. Portée

  • La clause WHERE est utilisée pour filtrer la table sous-jacente ou afficher les lignes. Il est exécuté avant l'opération de regroupement, il applique donc la condition à une seule ligne. La
  • HAVING clause est utilisée pour filtrer l'ensemble de résultats groupés. Il est exécuté après l'opération de regroupement, il applique donc des conditions aux résultats du groupe.

2. Scénarios d'utilisation

  • La clause WHERE est utilisée pour filtrer les lignes qui ne répondent pas à des conditions spécifiques. Par exemple, pour rechercher tous les articles dont le prix est supérieur à 100 $ :
<code class="sql">SELECT * FROM products WHERE price > 100;</code>
Copier après la connexion
  • clause HAVING est utilisée pour filtrer les groupes qui répondent à certains critères. Par exemple, recherchez des groupes d'articles dont le prix moyen est supérieur à 100 $ :
<code class="sql">SELECT category, AVG(price) AS avg_price
FROM products
GROUP BY category
HAVING avg_price > 100;</code>
Copier après la connexion

3 Position

  • La clause WHERE est située après la clause FROM et avant la clause SELECT.
  • Clause HAVING est située après la clause GROUP BY.

4. Exemple

<code class="sql">-- 使用 WHERE 子句过滤行
SELECT * FROM orders WHERE customer_id = 1;

-- 使用 HAVING 子句过滤组
SELECT product_category, SUM(quantity) AS total_quantity
FROM order_details
GROUP BY product_category
HAVING total_quantity > 100;</code>
Copier après la connexion

Remarque :

  • La clause HAVING ne peut être utilisée qu'avec des opérations de regroupement, tandis que la clause WHERE peut être utilisée dans n'importe quelle instruction SQL.
  • La condition utilisée dans la clause HAVING doit faire référence à une fonction d'agrégation ou à une colonne de regroupement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal