在写一段关于统计的sql时,使用了行政区划进行分组,之后因为需求需要截取区划代码前几位进行分组,改过之后原sql语句中子查询部分报错00979
语句如下:
select
rpad(substr(area_code,0,6),11,'0') as area_code,
(select count(1) from
(select p_code from temp where
rpad(substr(area_code,0,6),11,'0') =
rpad(substr(top.area_code,0,6),11,'0')
) as count_num
from temp top
group by rpad(substr(area_code,0,6),11,'0')
原语句中没有使用截取和拼接函数,子查询中使用外部表别名不会报错,
改过之后将子查询的where条件等式右边改成固定字符串也不会报错。
所以我暂时觉得问题出在等式右边,但实在不知道是什么原因,希望有大神可以解惑