Oracle - select 每个 user_id 的最高交易

Oracle - select top transaction for each user_id

我有一个 select 语句获取 user_id 和当天的交易列表,例如:

select user_id, sale_amount, date, product from transactions

我希望能够 select 每个 user_id(有很多)连同它们的顶部 sale_amount、日期和产品。如果有平局,我希望它只有 select 个。这怎么可能? rownum 或 rank 似乎很接近但又不太接近?

我不是 ifo 计算机,但这应该可以。让我知道 select * from (select user_id, sale_amount, date, product,row_number() over (partition by user_id order by sales_amount desc) as maxsale from transactions) l where maxsale=1