Auswählen der obersten n Zeilen innerhalb einer group by-Klausel
Ich habe ein Schema ähnlich dem folgenden:
<code>create table bar ( instrument varchar(255) not null, bar_dttm datetime not null, bar_open int not null, bar_close int not null ) </code>
Ich möchte die Tabelle abfragen und die letzten 5 Zeilen pro Instrument zurückgeben.
Ich kann es Instrument für Instrument tun, mit:
<code>select top 5 instrument, bar_dttm, bar_open, bar_close from bar where instrument = 'XXX' order by bar_dttm desc </code>
Ich möchte dies für alle Instrumente gleichzeitig in einer Abfrage tun. Ist das möglich? Ich verwende SQL Server 2008.