有表USER_MONEY如下:
用户 交易日期 交易资金
w1 09-02-03 123.00
w2 09-02-03 125.00
w3 09-02-03 120.00
w2 09-02-02 123.00
w3 09-02-05 126.00
用一句SQL语句查出所有用最后的交易时间。
查询如下:
用户 交易日期 交易资金
w1 09-02-03 123.00
w2 09-02-03 123.00
w1 09-02-05 123.00
------解决方案--------------------------------------------------------
select distinct user,max(date) over(partition by user),money from user_money;
------解决方案--------------------------------------------------------
楼主给出的查询结果中交易资金是怎么处理的?看不出来
取总的话
select user,max(datetime),sum(money) from user_money group by user
只显示最后一个的话
select user,datetime,money from user_money a
where not exists(select 1 from user_money where datetime>a.datetime)
若有重复,用
select * from(select a.*,row_number()over(partition by user order by datetime desc)rn
from user_money a) where rn=1
------解决方案--------------------------------------------------------
我看见分析函数的时候感觉很好用·但是,性能要考虑下·
select user,max(date),decode(max(date),date,money) money from user_money group by user;