関連する場合は、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)
;
上記を踏まえて、2つの質問があります。
1)コンパイラ/アプリケーションが混乱する正確な方法/場所は?
2)明確にするためだけに、より深いサブクエリが最初に「起動」し、上位のサブクエリの値を返すと仮定して、混乱を完全にスキップするのは正しいですか?