В MySQL 8+ вы можете использовать оконные функции и условное агрегирование:
select o.user,
max(case when seqnum = 1 then amount end) as first_order_amount,
max(case when seqnum = 1 then created end) as first_order_datetime,
max(case when seqnum = 2 then amount end) as second_order_amount,
max(case when seqnum = 2 then created end) as second_order_datetime
from (select o.*,
row_number() over (partition by user order by created) as seqnum
from orders o
) o
group by o.user;