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.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage