1

トランザクションテーブルがあり、そこにはトランザクションID、名前、およびcreatedatなどの列があります。 作成されたデータがすべて異なる名前のトランザクションが複数存在します。SQLのアイテムごとに最新の5つのトランザクションを照会する方法

名前ごとに5つの最新のトランザクションを照会します。テーブル全体で5つの最新のトランザクションを取得しない。トランザクションが5つ未満の場合は、そこにあるものを表示するだけです。

私のすべての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

関連する問題