So fügen Sie eine Sequenznummer für Gruppen in einer SQL-Abfrage ohne temporäre Tabellen hinzu

8

Ich habe eine komplexe Suchabfrage in SQL 2008 erstellt, die Daten nach Gruppen sortiert zurückgibt, und die Abfrage selbst enthält Paging- und Sortierfunktionen, aber anstatt eine festgelegte Anzahl von Datensätzen basierend auf den Paging-Optionen zurückzugeben, benötigt sie um eine festgelegte Anzahl von Gruppen zurückzugeben (so wird die Anzahl der Datensätze variieren).

Ich mache das gerade durch die Verwendung von temporären Tabellen (die erste temporäre Tabelle erstellt eine Liste der Gruppen, die als Teil der Suche ausgewählt werden, nummeriert sie dann ... und die zweite Abfrage verbindet diese Tabelle.) zur eigentlichen Suche ... also endet die Suchabfrage zweimal).

Was ich suche, ist eine effizientere Möglichkeit, dies mit einigen der neuen Funktionen in SQL 2008 zu tun (die keine Verwendung von temporären Tabellen erfordern würden).

Wenn ich die Daten in einem Format wie diesem bekommen kann, würde ich eingestellt werden ...

%Vor%

Irgendwelche Ideen, wie Sie dies mit einer einzigen Abfrage in SQL 2008 erreichen können, ohne temporäre Tabellen zu verwenden?

    
Jacob 09.03.2011, 22:55
quelle

2 Antworten

10

Beispieldaten

%Vor%

Abfrage

%Vor%

Ausgabe

%Vor%     
RichardTheKiwi 09.03.2011, 23:04
quelle
1

Ohne weitere Details zu den Tabellen, die Sie haben, würde ich sagen, dass Sie in CTE Abfragen schauen und die row_number Funktion ... etwas in der Art von:

%Vor%     
chezy525 09.03.2011 23:04
quelle

Tags und Links