题目
现在数据库中有一张用户交易表order,其中有userid(用户ID)、amount(消费金额)、paytime(支付时间),请写出对应的SQL语句,查出每个用户第一单和最近一单的消费时间和金额。
题解
测试表如下:
思路:先找到每个用户第一单消费时间,再用联结找到第一单消费金额;同理可知每个用户最近一单的消费时间和金额;再用联结汇总即可。
1.先找到每个用户第一单消费时间,再用联结找到第一单消费金额
select a.userid,t2.min,a.amount
from
(select userid,min(Paytime)as min #第一单时间是最小的时间
from ceshi
GROUP BY userid)t2
left outer join