Selecionando as n primeiras linhas dentro de um grupo por cláusula

Eu tenho esquema semelhante ao seguinte:

<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>

Gostaria de consultar a tabela e retornar as 5 linhas mais recentes por instrumento.

Eu posso fazer isso instrumento por instrumento, com:

<code>select top 5 instrument, bar_dttm, bar_open, bar_close
from bar
where instrument = 'XXX'
order by bar_dttm desc
</code>

Eu gostaria de fazer isso para todos os instrumentos de uma só vez em uma consulta. Isso é possível? Estou executando o SQL Server 2008.

questionAnswers(3)

yourAnswerToTheQuestion