问答交流

【代码报错】BinderException: Binder Error: Column "date" does not exist on left side of join!

由bqil6e0f创建,最终由small_q 被浏览 20 用户

表达式策略编写基础功能,跪求大佬解惑!!

https://bigquant.com/codesharev3/9372baa1-eb8d-4f7d-bbf5-38a53988d0be

主要诉求:

1、按照十大流通股东持股比例大小排序

2、十大流通股东名称(报告期)包含社保


明明添加了十大流通股东表达式的数据表,但是为什么会报错。

股东名称包含社保,使用 holder_name like '社保' 是否正确?

评论
  • 感谢老师,小弟膜拜膜拜你!
  • 老师您好,我看这个最终筛选出来的票,并没有实现按照流通股东持股比例从大到小排序,能否烦请您帮忙看一下?
  • 是在最后回测中每日k线处理函数中进行排序的。
  • undefined
  • 因为表cn_stock_float_shareholder_top10没有date列,有publish_date列,而且同一只股票同一个publish_date有10条记录,所以不能简单的合并。
  • 1、需要求出股票在publish_date社保股东的占比,没有社保的设置为0,使用holder_name like '%社保%'
  • 2、跟预计算表cn_stock_prefactors合并,而且是左连接,因为cn_stock_float_shareholder_top10不是每天都有数据的。
  • 3、合并后,很多数据的股东占比肯定是空的,所以需要向前填充,类似python的fillna(methd=’ffil’),sql的向前填充可以参考
  • https://bigquant.com/wiki/doc/dai-sql-faq-C7MciptBTM#h-%E7%BC%BA%E5%A4%B1%E5%80%BC%E5%A1%AB%E5%85%85%E6%9B%BF%E6%8D%A2
  • 4、填充后通过c_rank来计算排序
  • 对sql不熟悉的话可以把两个表的数据查询出来后用python来实现,如果要使用sql的话,可以参照
{link}