OracleのGROUP BY句
GROUP BY句を使用する場合オラクルの内部でソート処理が行われますが、10.2からデフォルトのソートアルゴリズムが変更されてます。
10.2以前はデフォルトがSORT(GROUP BY)だったのがHASH(GROUP BY)に変更されてます。
それが原因でGROUP BY句の対象となるレコードが大きい場合もしくはキーの値が同じような場合、HASシノニムが発生するみたいです。
「そんなバカな」と思うでしょ。僕もそう思いましたがどうも本当みたいです。
10gにしたときにソート系の実装を大分いじったようで、10.1とかSORTでバグかなり出てましたからね。いいなぁ。Oracleとかだとそんなバグでもあんまり怒られる事もないんやろなぁ。
HASH GROUP BY can give wrong result in Oracle 10.2
Oracle Internals