Maison > base de données > tutoriel mysql > Comment sélectionner les 10 principaux enregistrements Oracle à l'aide d'une sous-requête et d'un filtrage ?

Comment sélectionner les 10 principaux enregistrements Oracle à l'aide d'une sous-requête et d'un filtrage ?

Barbara Streisand
Libérer: 2025-01-18 15:51:09
original
693 Les gens l'ont consulté

How to Select the Top 10 Oracle Records Using a Subquery and Filtering?

Sélectionnez les 10 meilleurs enregistrements dans Oracle à l'aide de la sous-requête et du filtrage

Dans la base de données Oracle, vous pouvez utiliser des techniques de sous-requête et de filtrage pour sélectionner les 10 premiers enregistrements triés par une colonne spécifique. La requête initialement utilisée pour sélectionner tous les enregistrements correspondants peut être modifiée pour inclure cette exigence.

Pour résoudre le problème du retour d'enregistrements "aléatoires", vous pouvez utiliser la clause ROWNUM (qui est l'équivalent Oracle de la clause LIMIT).

Requête modifiée :

<code class="language-sql">SELECT * 
FROM 
(
  SELECT DISTINCT 
    APP_ID, 
    NAME, 
    STORAGE_GB, 
    HISTORY_CREATED, 
    TO_CHAR(HISTORY_DATE, 'DD.MM.YYYY') AS HISTORY_DATE  
  FROM HISTORY 
  WHERE 
    STORAGE_GB IS NOT NULL AND 
    APP_ID NOT IN (
      SELECT APP_ID 
      FROM HISTORY 
      WHERE TO_CHAR(HISTORY_DATE, 'DD.MM.YYYY') = '06.02.2009'
    )
  ORDER BY 
    STORAGE_GB DESC 
) 
WHERE 
  ROWNUM <= 10;</code>
Copier après la connexion

Cette requête utilise d'abord une sous-requête pour récupérer les enregistrements correspondants. Il applique ensuite la clause ROWNUM pour sélectionner les 10 premiers enregistrements de l'ensemble de données résultant en fonction des critères de tri.

Notes de performances :

Si les performances des requêtes sont lentes lors du traitement de grands ensembles de données, envisagez d'utiliser NOT EXISTS au lieu de NOT IN pour le prédicat de sous-requête. NOT EXISTS peut être plus efficace lorsque la sous-requête contient un grand nombre d'enregistrements.

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal