写sql经常涉及子查询,为子查询的层层嵌套感到头晕
首先我们要明确是一个从一堆数据中选择需要的数据并进行逻辑操作,最终整合成一张表的过程
所以最终那张表的字段就是我们的目标,也是最外层select
接着我们开一个from套一层子查询(select
无论需要几层,我们都先开一层,尝试从原始数据中找我们所需要的最小粒度的字段,可能有简单的聚合,分组,开窗也可以这一层做
此时观察是否能完成直接到最外层字段的逻辑,如果不能,在两层之间再加一层子查询
如果不行再在最外层向里面套一层)
一般来说子查询嵌套两层居多,最多三层,四层往上比较少,四五层就可以考虑是否有能直接调用的函数没有用到