You can try this solution for your problem:
Table Structure actual Implemented :
Table :
CREATE TABLE payments (
id MEDIUMINT NOT NULL AUTO_INCREMENT,
person_id int(25),
pmt_amount int(25),
pmt_date date,
PRIMARY KEY (id) ) #ENGINE=MyISAM;
Insert statement :
INSERT INTO payments (person_id,pmt_amount,pmt_date)
VALUES(1,50500,'2017-05-12');
INSERT INTO payments (person_id,pmt_amount,pmt_date)
VALUES(1,50500,'2018-05-12');
INSERT INTO payments (person_id,pmt_amount,pmt_date)
VALUES(1,10200,'2018-05-12');
INSERT INTO payments (person_id,pmt_amount,pmt_date)
VALUES(2,80200,'2018-05-12');
INSERT INTO payments (person_id,pmt_amount,pmt_date)
VALUES(3,9300,'2018-06-12');
INSERT INTO payments (person_id,pmt_amount,pmt_date)
VALUES(3, 15000,'2018-04-12');
INSERT INTO payments (person_id,pmt_amount,pmt_date)
VALUES(4,18000,'2018-03-12');
INSERT INTO payments (person_id,pmt_amount,pmt_date)
VALUES(4,15000,'2018-06-12');
Query :
select person_id,
MAX(pmt_amount) as greatest_payment,
pmt_date as greatest_payment_date
from payments p
group by person_id
ORDER BY pmt_date DESC
Ans also visit SQLfiddle for your problem
I Hope it will help.