payments
customer_id
payment_id
payment_amount
payment_date

If we want to see the payment_id of the highest amount of payment for each customer_id then we need to do:

select distinct customer_id,
    first_value(payment_id) over (partition by customer_id order by payment_amount desc) as highest_payment_id
from payments

Note that you don’t need to specify a group by clause for the overall query in this case.