oracle 查询转换简单说明5
1.1.1 Group-by 放置
Group-by放置(Group-by Placement)的目的基本上与非重复放置一样。唯一明显的差别是它们应用的查询类型不同。前者适用于包含GROUP BY子句的查询,后者适用于包含DISTINCT运算符的查询。Group-by放置是基于成本的查询转换,从11.1版本开始起才可用。
在下面这个来自group_by_placement.sql脚本的例子中,在两张表中存在父-子关系,且子表(t2)包含的记录数比父表(t1)更多:
SELECT t1.n, t2.n, count(*) FROM t1, t2 WHERE t1.id = t2.t1_id GROUP BY t1.n, t2.n;