Welcome to MLink Developer Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
463 views
in Technique[技术] by (71.8m points)

请问contxt by+last是不是取每个分组后的最后一条记录

在DolphinDB database中用context by分组,就会有多条记录,我想在每个分组里取最后一条。代码如下:

select last(ShortTermLoan),InfoPublDate,CompanyCode,EndDate,IfAdjusted,IfMerged 
from tbFactor
where EndDate = 2015.06.30,IfAdjusted == 2 and IfMerged == 1 and CompanyCode == 1518 
context by InfoPublDate,CompanyCode,EndDate,IfAdjusted,IfMerged 

可是返回了多条记录,如下图所示,
contextbylast_20200613093622.png
我的问题是context by分组后,每个分组应该有多条记录,然后我取last,这样不是返回每个分组里的最后一条记录吗?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

last是聚合函数,context by返回的记录数跟组的长度一样,所以会重复产生多条记录。
context by可以用top 1来取最后一条记录,代码如下:

select top 1 last(date(EndDate)) as date,last(ShortTermLoan) as v from tbFactor
where EndDate >= 2015.06.30,EndDate <= 2020.03.31,IfAdjusted == 2 and IfMerged == 1 and CompanyCode == 1518 
context by InfoPublDate,CompanyCode,EndDate,IfAdjusted,IfMerged csort JSID asc

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to MLink Developer Q&A Community for programmer and developer-Open, Learning and Share
...