我有一张桌子
2006 .5
2007 .6
2008 .4
2009 .7
2010 .4
我给了一个范围,例如。 2006-2010
我想要这样的结果:每当存在最大值时,以下年份将具有最大数量,除非下一个数字大于之前的数字。
2006-2010 2006 .5
2006-2010 2007 .6
2006-2010 2008 .6
2006-2010 2009 .7
2006-2010 2010 .7
所以这就是我的尝试:
我使用了交叉连接并获得了
2006-2010 2006 .5
2006-2010 2007 .6
2006-2010 2008 .4
2006-2010 2009 .7
2006-2010 2010 .4
但是,我没有得到正确的结果。有什么我应该用来获得最大值比前一年。不确定我是否能够很好地解释这一点。
答案 0 :(得分:1)
试试这个
create table dates (year int, val float);
insert into dates values (2006,.5); insert into dates values (2007,.6); insert into dates values (2008,.4); insert into dates values (2009,.7); insert into dates values (2010,.4);
select * , (select round(max(val),1) from dates d2 where d2.year<=d1.year) as max from dates d1;