问题很隐藏,无任何报错,子查询中的where条件用到了最后外面主查询表中的一个值,但这个条件居然没有效果。

为什么这个内查询中的条件(a.entity_id = t1.entity_id)会无效?
子查询单独查询,才是正确的结果,见下图:

有知道原因的给我讲解一下,非常感谢
------解决方案--------------------
试试把子查询中的两层写到同一层里:
select avg(sum(a.veri_oil_prod_incr_mon)) from .... a where ...... group by ....
------解决方案--------------------
子查询中的谓词条件关联到外层的表时,尽量不要跨多层
并且这里涉及到聚合的问题,由于外层根据entity_id分组,所以理论上写法是对的,否则还要多加一层聚合函数。大概是由于跨了两层导致解析错误,使得avg()没有效果