有这样一些数据:
khbh 客户编号
jkje 交款金额
xgrq 修改日期(交款日期)khbh jkje xgrq
0001 200.23 2011-01-01 13:12:14
0001 300 2011-01-11 14:12:14
0001 450 2011-01-24 13:12:14
0002 200.23 2011-01-01 13:12:14
0002 300.23 2011-01-14 13:12:14
0003 100.23 2011-01-03 13:12:14
0003 230.00 2011-01-05 15:19:00想查询每个客户,最新的交款日期的交款金额。
khbh 客户编号
jkje 交款金额
xgrq 修改日期(交款日期)khbh jkje xgrq
0001 200.23 2011-01-01 13:12:14
0001 300 2011-01-11 14:12:14
0001 450 2011-01-24 13:12:14
0002 200.23 2011-01-01 13:12:14
0002 300.23 2011-01-14 13:12:14
0003 100.23 2011-01-03 13:12:14
0003 230.00 2011-01-05 15:19:00想查询每个客户,最新的交款日期的交款金额。
oftime,
(select t2.jkje
from mw_app.mwt_offend_info t2
where t2.khbh = khbh
and t2.xgrq = oftime)
from (select t.khbh, max(t.xgrq) as oftime
from mw_app.mwt_offend_info t
group by t.khbh)
要么倒序排列,取第一个,要么直接取最大值
一般可以比较的 我都取最大值 order用起来比较乱
from (select row_number() over(partition by khbh order by xgrq desc) as rn,
khbh,
jkje,
xgrq
from test)
where rn = 1
select khbh,jkje,xgrq,versions_starttime,versions_endtime
from table version between timestamp minvalue and maxvalue where
versions_starttime is not null order by version_starttime desc; versions_starttime是数据被修改的起始时间,versions_endtime是数据被修改后新数据的有效时间,也就是versions_starttime和versions_endtime时间段内,这条数据再没被修改过,如果versions_endtime为空,就说明这天记录从versions_starttime时间起再没被修改过。