Jark Wu created FLINK-7144: ------------------------------ Summary: Optimize multiple LogicalAggregate into one Key: FLINK-7144 URL: https://issues.apache.org/jira/browse/FLINK-7144 Project: Flink Issue Type: Improvement Components: Table API & SQL Reporter: Jark Wu
When applying multiple GROUP BY, and no aggregates or expression in the first GROUP BY, and the second GROUP fields is a subset of first GROUP fields. Then the first GROUP BY can be removed. Such as the following SQL , {code} SELECT a FROM (SELECT a,b,c FROM MyTable GROUP BY a, b, c) GROUP BY a {code} should be optimized into {code} DataStreamGroupAggregate(groupBy=[a], select=[a]) DataStreamCalc(select=[a]) DataStreamScan(table=[[_DataStreamTable_0]]) {code} but get: {code} DataStreamGroupAggregate(groupBy=[a], select=[a]) DataStreamCalc(select=[a]) DataStreamGroupAggregate(groupBy=[a, b, c], select=[a, b, c]) DataStreamScan(table=[[_DataStreamTable_0]]) {code} I looked for the Calcite built-in rules, but can't find a match one. So maybe we should implement one , and maybe we should implement it in Calcite. -- This message was sent by Atlassian JIRA (v6.4.14#64029)