But did you actually run it and compare the logical reads (V$SQL_AREA.BUFFER_GETS) and timings of the 2 statements? Since you are now restricting the lists before the grouping, you will be saving an awful lot of effort. Unfortunately, the plans don't tell you everything :). Of course, the logical reads count will also be affected by the switch from a table scan to and index usage. Your best bet might be to run each statement twice to remove any caching issues and check the timing of the second runs for each.

- Chris