Tuple filtering is applied for a GROUP BY when the following criteria are
met:
- All grouping columns come from the same table and the optimizer has chosen
the table in question to be the outermost table in the query block.
- The optimizer has chosen an index as the access path for the table in
question.
- The grouping columns, plus any simple column references from the table
that have equality predicates on them, are a prefix of the index that the
optimizer selected as the access path for the table.
Here is the most common case in which tuple filtering will be applied:
SELECT max(c2) FROM t1 GROUP BY c1
Equality predicates allow tuple filtering on the following:
SELECT c2, SUM(c3)
FROM t1
WHERE c1 = 5 GROUP BY c2
SELECT max(c4)
FROM t1
WHERE c1 = 5 AND c3 = 6 GROUP BY c2