当前位置:首页 > 教育

300469 SQL 难点解决:循环计算

[摘要]

虽然SQL可以对一个集合中的记录进行循环计算,但是使用中间变量,同时计算多个值,前后访问记录,减少循环次数,并不能令人满意。积分器SPL更加直观,可以按照自然的思维习惯写操作。这里就循环计算来比较SQL和积分器SPL。如需了解更多,请到干部学院:SQL疑难解答:循环计算!(http://c.raqsoft.com.cn/article/1546870228191?r =微笑天使)

1.求20以内的素数

MySQL8:

递归t(n)为(

选择1

union all从t中选择n+1,其中n & lt20)

从t中选择n

哪里n!=1且n不在(从t t1选择t1.n*t2.n,在t1上连接t t2,& lt=t2.n,其中t1 . n > t。1和t2.n介于2和20/2和t1 . n * T2 . n & lt;=20);

SPL集成商:

A3:对于A2中的每个成员,在20 (n >: 1)内找到其N倍,并按顺序返回所有计算结果

A4:排除1和所有20以内的复合数是20以内的素数,其中A3.conj()求20以内的复合数

2.求格力电器上涨天数最长(000651)

MySQL8:

递归t1 as (select *,row _ number())over(order by tdate)rn from STK trade其中sid='000651 '),

t2 as(选择*,0从t1上升,其中rn=1

联合所有

选择t1。*,if(t1 . close & gt;t2.close,t2.rise+1,0)从t1加入t1上的t2,rn=t2.rn+1)

从t2中选择最大值(上升);

SPL集成商:

A2:按交易日期升序排序

A3:循环计算A。如果收盘价高于前一个交易日的收盘价,加1,否则重置为0,然后求出每条记录计算出的A的最大值

3.求信息发展(300469)历史最高收盘价2018年2月14日下跌

MySQL8:

选择1-t2.close/t1.close瀑布

from(选择max(close) close from stktrade,其中sid='300469') t1,

(从stktrade中选择close,其中sid='300469 '且tdate = ' 2018-02-14 ')T2;

SPL集成商:

4.求信息发展(300469)2018年1月1日至10日累计日交易量

MySQL8:

选择tdate,volume,sum(volume)over(order by tdate)cum

来自stktrade

其中sid='300469 '和t日期介于' 2018-01-01 '和' 2018-01-10 '之间;

SPL集成商:

A3:对于A2中的每条记录,将卷列重新分配给前一条记录的累计列和该记录的卷列之和,最后返回A2

A3: A.iterate(x,a,c)相当于变量~ ~的初始赋值给a,然后循环a中的成员,每次将x的计算结果赋值给~ ~,然后判断c是否为真,如果是,继续循环,否则返回~ ~。@表示本地空间值,此处用作中间变量。

6.当不重复计算重叠部分时,计算多个时间段中包含的总天数

MySQL8:

tt(开始,结束)为(选择日期' 2010-01-07 ',日期' 2010-01-9 '

联合所有选择日期' 2010-01-15 ',日期' 2010-01-16 '

联合所有选择日期' 2010-01-07 ',日期' 2010-01-12 '

union all select date'2010-01-08 ',date'2010-01-11 '),

测试方式(从tt订单开始选择*),

tmp as(

选择t.start,t.end,@ m:= if(@ m & gt;@p,@m,@p) m,@p:=end,

@m >时的情况;当@ m & ltstart然后datediff(end,start)+1 else datediff(end,@m)结束天数

从t中,选择@m:=date'1970-01-01 ',@p:=@m) s

)

从tmp中选择sum(天数);

注意:@m是此记录的前一个结束日期的最大值,@p是此记录的结束日期,days是自前一个最大结束日期以来经过的天数。这个问题的其他解决方案可以参考《SQL难度解析:集合和行号》(http://c.raqsoft.com.cn/article/1542508403539)和《SQL难度解析:记录的引用》(http://c . raqsoft . com . cn/article/1544663642094)中相同的例子。

SPL集成商:

7.列出2018年6月11日至15日信息发展(300469)和招商银行(600036)的交易信息和累计成交率

MySQL8:

k as(选择sid、循环、tdate开始、lead(tdate,1,date_add(now()、interval 1 day))结束(按sid顺序分区,按tdate)结束

来自股票)

选择t.*,circ,sum(t . volume/k . circulation/10000)over(按sid顺序分区,按tdate)速率

从stktrade t join k on t.sid=k.sid和t.tdate & gt=k.start和t.tdate & ltk .结束

其中t.sid在(' 300469 ',' 600036 ')和t.tdate之间' 2018-06-11 '和' 2018-06-15 ';

SPL集成商:

1.《300469 SQL 难点解决:循环计算》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《300469 SQL 难点解决:循环计算》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/jiaoyu/1055353.html

上一篇

直播杀人男子自杀 脸谱网不作为造成十分恶劣社会影响

下一篇

346.8万对夫妻去年离婚 离婚人口整体攀升

2020国考报名结束 事情经过真相揭秘!

2020国考报名结束 事情经过真相揭秘!

2020年国家公务员考试报名于10月24日18: 00完成。此次招聘共提供1.3万个岗位,计划招聘人数超过2.4万人,比上年增加近1万人。据相关机构统计,最终报名人数为139万人,通过资格考试的人数约为127万人。最热门的...

地球上最伟大表演将结束146年巡演

5月24日,被誉为“地球上最伟大的表演”的美国玲玲马戏团,本月21日在纽约长岛举行谢幕演出,结束了其146年的巡演历史。经营马戏的Feder Entertainment今年1月表示,观众持续减少,运营成本高是导致演出结束的...

变性女星协议离婚 结束十年婚姻

变性女星协议离婚 结束十年婚姻

6月13日,42岁的韩国变性艺术家哈里苏在10周年纪念日上个月19日与丈夫郑英珍结婚。然而,今天,韩国媒体震惊地获悉,harisu已经同意与丈夫郑英珍离婚,结束了她长达十年的婚姻。 河莉秀和郑英珍于2007年5月19日结...

朴有天结婚日期疑曝光 女友:0910请祝福我们!

朴有天结婚日期疑曝光 女友:0910请祝福我们!

6月14日,有报道称,韩国团体JYJ的成员朴柳春(park yoo-chun)将于8月退役。13日,有消息透露,婚期定在9月10日,与圈子外3岁的女友黄结婚。她之前被曝光是南洋乳业创始人的孙女,而他也是著名的韩流明星。婚...

江映蓉发布长文告别天娱 双方友好结束经纪合约关系

6月20日,江映蓉长文告别天宇,双方友好结束经纪合同关系。6月19日凌晨,江映蓉在微博上发表了一篇长文《送花送土》,宣布与田玉娥媒体8年的合同友好结束,感谢田玉娥媒体和湖南卫视未来与田玉娥保持良好的合作关系。江映蓉发表长文...

惋惜!产妇亲吻完满月孩子离世 初为人母的快乐和幸福结束

惋惜!产妇亲吻完满月孩子离世 初为人母的快乐和幸福结束

6月20日,黑龙江省蓟县,一位38岁的妇女在床上亲吻刚刚满月的孩子,几小时后死于心脏病。产妇丈夫拍摄的短视频成为母子在一起的最后记录。 在父亲提供的视频中,孩子的母亲似乎在享受着做新妈妈的快乐。她不停地亲吻拥抱孩子,亲密...

鄱阳湖禁渔为期3个月结束 今年鄱阳湖禁渔成效显著

6月21日,鄱阳湖禁渔结束三个月,今年鄱阳湖禁渔成效显著。6月20日,在江西省余干县康山水域,远远望去,一片广阔的景象。数百艘渔船从这里出发,驶向鄱阳湖深处...鄱阳湖为期三个月的春季禁渔于当日12时结束,渔民开始在湖中捕...

倪安东承认出轨 和老婆Vivi结束7年婚姻

倪安东承认出轨 和老婆Vivi结束7年婚姻

6月23日,有报道称歌手倪安东和《千面妖女》有婚外情。21日透露,他们在美国街头亲密接吻,还十指紧扣纹身,暴露了他们的地下恋情。面对外界,倪安东早前在Facebook上写道:“我选择了做错事的行为,并证明这已经给自己和家人...