Maison  >  Article  >  base de données  >  oracle requête données en double

oracle requête données en double

王林
王林original
2023-05-13 21:46:059523parcourir

Requête Oracle pour les données en double

Lorsque nous devons interroger des données en double dans la base de données, nous pouvons utiliser diverses méthodes dans Oracle pour y parvenir. Dans Oracle, les données en double font souvent référence à la même valeur apparaissant dans la même colonne, et ces valeurs apparaissent plus d'une fois.

Ce qui suit présente plusieurs façons d'interroger les données en double Oracle.

Méthode 1 : Utilisez GROUP BY et HAVING

GROUP BY et HAVING sont utilisés pour regrouper et filtrer les données. Nous pouvons utiliser ces deux instructions ensemble pour interroger des données en double.

Par exemple, nous avons une table nommée employés, qui contient deux champs : nom de l'employé (ename) et salaire (sal). Si nous souhaitons interroger les noms et les salaires des employés avec des salaires en double, nous pouvons utiliser l'instruction suivante :

SELECT ename, sal, COUNT() FROM employés GROUP BY ename, sal HAVING COUNT() >

Exécutez la requête ci-dessus Après la déclaration, nous pouvons obtenir les noms et les salaires de tous les employés dont les salaires sont répétés.

Méthode 2 : utiliser la fonction fenêtre

La fonction fenêtre est une méthode qui peut calculer des fonctions d'agrégation ou d'analyse dans les résultats d'une requête. Nous pouvons utiliser des fonctions de fenêtre pour interroger des données en double.

Par exemple, nous avons une table nommée commandes, qui contient deux champs : le numéro de commande (order_id) et le volume des ventes (sales). Si nous souhaitons interroger le numéro de commande et le volume des ventes avec des ventes répétées, nous pouvons utiliser l'instruction suivante :

SELECT order_id, sales FROM ( SELECT order_id, sales, COUNT(*) OVER(PARTITION BY sales) AS cnt FROM commandes ) WHERE cnt > 1 ;

Après avoir exécuté l’instruction de requête ci-dessus, nous pouvons obtenir le numéro de commande et le volume des ventes de toutes les ventes répétées.

Méthode 3 : Utiliser l'auto-jointure

L'auto-jointure est une méthode d'interrogation de données en connectant différentes instances de la même table. Nous pouvons utiliser l'auto-jointure pour interroger les données en double.

Par exemple, nous avons une table nommée clients, qui contient deux champs : nom du client (nom) et numéro de téléphone portable (téléphone). Si nous souhaitons interroger les noms et numéros de téléphone mobile des clients avec des numéros de téléphone mobile en double, nous pouvons utiliser la déclaration suivante :

SELECT c1.name, c1.phone FROM clients c1 JOIN clients c2 ON c1.phone = c2.phone AND c1.name < c2.name;

Après avoir exécuté l'instruction de requête ci-dessus, nous pouvons obtenir les noms et numéros de téléphone mobile de tous les clients avec des numéros de téléphone mobile en double.

Résumé

Dans Oracle, nous pouvons utiliser diverses instructions telles que GROUP BY et HAVING, des fonctions de fenêtre et des auto-jointures pour interroger des données répétées. Lorsque vous l'utilisez, vous devez choisir la méthode appropriée en fonction de la situation réelle pour obtenir un effet de requête plus efficace. Dans le même temps, vous devez également prêter attention à l'optimisation des instructions de requête afin de réduire autant que possible le temps de requête et les ressources consommées.

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!

Déclaration:
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
Article précédent:oracle modifier l'adresse IPArticle suivant:oracle modifier l'adresse IP