排序后计算全部数据和某个字段的数据计算结果不同

one=select code,dates, iif(deltas(J)>0,1,0) as J_up from (select * ,MACD(close, 5, 34, 5) as `DIF`DEA`MACD`J from M_1 where code="000001" order by code,dates)
all = select code,dates, iif(deltas(J)>0,1,0) as J_up from  (select * ,MACD(close, 5, 34, 5) as `DIF`DEA`MACD`J from M_1  order by code,dates)

attachments-2023-06-GP4pQ5B26479b50dd6e27.pngattachments-2023-06-cwWSgFJI6479b53887b5f.png用同样的 M_1 一分钟数据源,但用全部数据计算和用某个股票计算出现了不同结果, 这是为什么?

请先 登录 后评论

1 个回答

veryOrdinary

嵌套子句中 select 先于 order by 执行, 即先根据原始数据计算出结果,再对结果按 code, dates 排序。MACD 中包含序列相关函数,因此全局计算和只查询某个股票计算的结果是不同的。建议先对 M_1 表按 code, dates 排序后,再计算 MACD。

请先 登录 后评论
  • 1 关注
  • 0 收藏,573 浏览
  • 提出于 2023-06-02 17:25

相似问题