Heim >Datenbank >MySQL-Tutorial >Wie rufe ich mit SQL Server 2005 die Top 10 Datensätze pro Kategorie ab?
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!