想求各列,由负转正数或正转负的行数

在DolphinDB database中,如下图所示,想求各列,由负转正数或正转负的行数,请问有什么方法?

attachments-2021-06-ZerkyWud60c84377d7648.png

请先 登录 后评论

1 个回答

logger

DolphinDB是一个times series database (TSDB),对序列数据的建模比关系数据库容易很多。DolphinDB中的一个表的一个列无论在磁盘还是内存中都是列式存储的。在内存中用一个vector来表示。

//计算由负转正的行数
select count(*) from t where value > 0 and prev(value) < 0
//计算由正转负的行数
select count(*) from t where value < 0 and prev(value) > 0

如果是面板数据,涉及很多股票,需要按每个股票分别计算:

//计算每个股票由负转正的行数
select sum(value > 0 and prev(value) < 0) as count from t group by stock
//计算每个股票由正转负的行数
select sum(value < 0 and prev(value) > 0) as count from t group by stock
请先 登录 后评论