Heim >Datenbank >MySQL-Tutorial >Wie rufe ich mit SQL Server 2005 die Top 10 Datensätze pro Kategorie ab?

Wie rufe ich mit SQL Server 2005 die Top 10 Datensätze pro Kategorie ab?

Barbara Streisand
Barbara StreisandOriginal
2025-01-21 06:06:08885Durchsuche

How to Retrieve the Top 10 Records per Category Using SQL Server 2005?

Extrahieren der Top-10-Datensätze pro Kategorie in SQL Server 2005

Diese Anleitung zeigt, wie Sie die Top-10-Datensätze für jede Kategorie mit einer einzigen SQL Server 2005-Abfrage effizient abrufen.

Hier ist die Lösung:

<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>

Diese Abfrage verwendet die Funktion RANK(), um jedem Datensatz innerhalb seiner Kategorie eine Rangfolge zuzuweisen, basierend auf RankCriteria (der Spalte, die die Rangfolge definiert). Die PARTITION BY Section-Klausel gewährleistet eine unabhängige Rangfolge innerhalb jeder Kategorie. RANK() weist fortlaufende Ränge zu, beginnend bei 1 für den Datensatz mit dem höchsten Rang.

Die WHERE Rank <= 10-Klausel filtert die Ergebnisse und beschränkt die Ausgabe auf die obersten 10 Datensätze in jeder Kategorie. Es ist wichtig zu bedenken, dass bei Verbindungen in RankCriteria möglicherweise mehr als 10 Datensätze für eine Kategorie zurückgegeben werden.

Das obige ist der detaillierte Inhalt vonWie rufe ich mit SQL Server 2005 die Top 10 Datensätze pro Kategorie ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn