如果相关,我正在使用 SQL*Plus 或 Oracle 11g express。
我遇到了一些奇怪的事情,我希望了解更多关于嵌套组函数的信息,因为我是 SQL 新手,我发现错误的讽刺之处及其解决方案很奇怪:
这不起作用
where
t1.col1 =
(select col1
from t2
having count(col2) = max(count(col2))
group by col1
;
有了以上内容,我收到:
ORA-00935: 组函数嵌套太深
这确实有效
where
t1.col1 =
(select col1
from t2
having count(col2) =
(select max(count(col2)) from t2
group by col1)
group by t2.col1)
;
鉴于上述情况,我有两个问题:
1)编译器/应用程序究竟是如何/在哪里变得混乱的?
2)如果只是为了清楚起见,我是否正确地假设更深的子查询首先“触发”,并为上子查询返回一个值,从而完全跳过混乱?