Extraction des 10 principaux enregistrements par catégorie dans SQL Server 2005
Ce guide montre comment récupérer efficacement les 10 principaux enregistrements de chaque catégorie à l'aide d'une seule requête SQL Server 2005.
Voici la solution :
<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>
Cette requête utilise la fonction RANK()
pour attribuer un classement à chaque enregistrement dans sa catégorie, en fonction du RankCriteria
(la colonne définissant l'ordre de classement). La clause PARTITION BY Section
garantit un classement indépendant au sein de chaque catégorie. RANK()
attribue des classements séquentiels, en commençant à 1 pour l'enregistrement le mieux classé.
La clause WHERE Rank <= 10
filtre les résultats, limitant la sortie aux 10 premiers enregistrements de chaque catégorie. Il est essentiel de se rappeler que s'il existe des égalités dans RankCriteria
, plus de 10 enregistrements peuvent être renvoyés pour une catégorie.
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!