【sql】对排序之后的数据根据某个字段的前后两个值计算其变化率

(1)通过创建两张表(也可以选择为创建TEMPORARY临时表)temp和temp2,同时在对两张表初始化数据的时候分别是设置序号rank(起始值0和1,且数据保证是按照字段S_INFO_WINDCODE值相同和字段TRADE_DT升序排列,这样的一个顺序rank顺序增加的)(2)将两张表temp和temp2进行join操作,且条件是rank相等(其实是原表中刚好错位了的前后两条被放在同一条记录中了)和相同的t2(也即原有的S_INFO_WINDCODE字段值),则可以计算出来某个S_INFO_WINDC
摘要由CSDN通过智能技术生成

(1)通过创建两张表(也可以选择为创建TEMPORARY临时表)temp和temp2,同时在对两张表初始化数据的时候分别是设置序号rank(起始值0和1,且数据保证是按照字段S_INFO_WINDCODE值相同和字段TRADE_DT升序排列,这样的一个顺序rank顺序增加的)

(2)将两张表temp和temp2进行join操作,且条件是rank相等(其实是原表中刚好错位了的前后两条被放在同一条记录中了)和相同的t2(也即原有的S_INFO_WINDCODE字段值),则可以计算出来某个S_INFO_WINDCODE某两条相邻的(TRADE_DT)记录间的变化率

(3)将(2)中的计算结果以一个新的字段形式存储在原表AShareMarginTrade中

具体实现的详细SQL语句:

– 如果存在则删除临时表temp

DROP TABLE IF EXISTS temp;

– 创建临时表temp,且对其排序之后增加序号

SELECT @rownum := 0;

CREATE TABLE IF NOT EXISTS

temp(t1 VARCHAR(8),t2 VARCHAR(20),t3 DECIMAL(20,4),rank INT,INDEX(rank))

SELECT mt.TRADE_DT t1,mt.S_INFO_WINDCODE t2,mt.S_MARGIN_PURCHWITHBORROWMONEY t3, @rownum := @rownum + 1 AS rank

FROM AShareMarginTrade mt

ORDER BY mt.S_INFO_WINDCODE,mt.TR

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值