Wie fügt Sequenznummer für Gruppen in einer SQL-Abfrage ohne temp-Tabellen

Ich habe eine komplexe Suchanfrage in SQL-2008-Daten zurückgibt, die nach Gruppen sortiert, und die Abfrage selbst hat paging und Sortieren von Funktionen in sich, aber anstelle der Rückgabe eine festgelegte Anzahl von Datensätzen basierend auf den paging-Optionen, die es braucht, um wieder eine festgelegte Anzahl von Gruppen (also die Anzahl der Datensätze variieren).

Ich bin derzeit tun dies durch die Verwendung von Temp-Tabellen (die erste temp-Tabelle erstellt eine Liste der Gruppen, die ausgewählt werden, als Teil der Suche, und dann zahlen Sie... und die zweite Abfrage wird diese Tabelle, um die eigentliche Suche... also, es endet mit den Suchabfrage zweimal).

Was ich Suche, ist ein effizienter Weg, dies zu tun mit einigen der neuen Funktionen in SQL 2008 (was nicht erfordern die Verwendung von temporären Tabellen).

Wenn ich die Daten in ein format wie dieses, ich würde eingestellt werden...

Record Gruppe GroupSequence 
------- | --------- | -------------- 
1 Hühner 1 
2 Hühner 1 
3 Kühe 2 
4 Pferde 3 
5 Pferde 3 
6 Pferde 3 

Irgendwelche Ideen auf, wie dies mit einer einzigen Abfrage in der SQL-2008, ohne die Verwendung von temp-Tabellen?

  • Die Spalten sind aus dem Daten-und dem müssen die Werte berechnet?
  • Die ersten und die zweiten Spalten ("Record[Zahl]" und "Gruppe") sind aus Daten. Die Spalte "GroupSequence" würde berechnet, indem die Abfrage.
InformationsquelleAutor Jacob | 2011-03-09
Schreibe einen Kommentar