【和sql对比】连续区间的比上期 | 润乾 -pg游戏官网登录入口

某支股票最长连续涨了多少交易日

sql解法

select max(连续日数)
from (select count(*) 连续日数
      from (select sum(涨跌标志) over(order by 交易日) 不涨日数
            from (select 交易日,
                      case when
                          收盘价>lag(收盘价) over(order by 交易日)
                     then 0 else 1 end 涨跌标志
                  from 股价表) )
group by 不涨日数)

对于较复杂些的次序计算,常规的思维过程无法用sql描述,必须改变思路转换问题才能完成。这里先计算从初始时刻开始累计的不涨日数,不涨日数相同的交易日即是在连续上涨,针对其分组可计算出最大连涨区间,这个原理读懂已经不易,写出来则更困难。

spl解法

a
1 =demo.query(“select * from 股价表”).sort(交易日)
2 =0 临时变量记录连续涨了几天
3 =a1.max(a2=if(收盘价>收盘价[-1],a2 1,0)) 比较前日决定a2是否继续加

spl按自然的思路过程编写计算代码即可。

网站地图