Как запросить последние пять транзакций на элемент в sql

Существует таблица транзакций, и в ней есть столбцы, такие как идентификатор транзакции, имя и созданное. Существует несколько транзакций для каждого имени, чьи данные createdat будут разными.

Я хочу запросить пять последних транзакций на имя. Не получить пять последних транзакций во всей таблице. В случае, если у него меньше пяти транзакций, я хочу, чтобы он просто показывал все, что есть.

Пытаюсь собрать все свои знания sql, но мне трудно это сделать. Любой вклад будет высоко оценен.


person shle2821    schedule 20.06.2016    source источник
comment
См. здесь: stackoverflow.com/questions/tagged/   -  person a_horse_with_no_name    schedule 20.06.2016
comment
@nazark Почему бы тебе не опубликовать это как ответ?   -  person Clodoaldo Neto    schedule 20.06.2016
comment
хорошо сделаю, спасибо   -  person nazark    schedule 20.06.2016


Ответы (1)


попробуйте этот запрос,

select * 
from ( 
   select *, row_number() OVER (PARTITION BY name ORDER BY createdat DESC) as rnk 
   FROM yourtable
) t 
where rnk <=5
person nazark    schedule 20.06.2016
comment
Большое спасибо. Работает отлично. - person shle2821; 21.06.2016