Maison > base de données > tutoriel mysql > Comment interroger efficacement les N premiers enregistrements dans plusieurs catégories en SQL ?

Comment interroger efficacement les N premiers enregistrements dans plusieurs catégories en SQL ?

Susan Sarandon
Libérer: 2025-01-21 06:11:08
original
502 Les gens l'ont consulté

How to Efficiently Query Top N Records Across Multiple Categories in SQL?

Récupération des N premiers enregistrements de plusieurs catégories dans SQL

Cette technique SQL récupère efficacement les N premiers enregistrements (par exemple, les 10 premiers) de diverses catégories au sein d'une seule table.

<code class="language-sql">SELECT rs.Field1, rs.Field2
FROM (
    SELECT Field1, Field2,
    RANK() OVER (PARTITION BY Section ORDER BY RankCriteria DESC) AS Rank
    FROM table
) rs
WHERE Rank <= 10;</code>
Copier après la connexion

Explication :

  • Field1 et Field2 : Celles-ci représentent les colonnes que vous souhaitez récupérer.
  • L'instruction interne SELECT utilise la fonction de fenêtre RANK(). PARTITION BY Section divise les données en groupes en fonction de la catégorie « Section ». ORDER BY RankCriteria DESC trie les enregistrements dans chaque section selon vos critères de classement par ordre décroissant. Rank attribue un rang à chaque enregistrement au sein de sa section.
  • L'instruction SELECT externe filtre les résultats, en ne conservant que les enregistrements avec une valeur Rank de 10 ou moins (Rank <= 10).

Cette méthode est efficace et fonctionne même sur les systèmes de bases de données qui peuvent manquer de fonctions dédiées de limitation de lignes. C'est idéal lorsque les performances sont critiques.

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