当前位置: 代码迷 >> Oracle认证考试 >> 用一句sql话语查出所有用户最后交易时间
  详细解决方案

用一句sql话语查出所有用户最后交易时间

热度:7523   发布时间:2013-02-26 00:00:00.0
用一句sql语句查出所有用户最后交易时间
有表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;
  相关解决方案