1

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

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

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

+1

Смотрите здесь: http://stackoverflow.com/questions/tagged/greatest-n-per-group+postgresql –

+1

@nazark Почему бы вам не отправить его как ответ? –

+1

ok сделаю это, спасибо – nazark

ответ

2

попробовать этот запрос,

select * 
from ( 
    select *, row_number() OVER (PARTITION BY name ORDER BY createdat DESC) as rnk 
    FROM yourtable 
) t 
where rnk <=5 
+0

Большое спасибо. Работает отлично. – shle2821