You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Julian Hyde (JIRA)" <ji...@apache.org> on 2015/05/16 02:02:50 UTC

[jira] [Created] (CALCITE-733) Multiple distinct-COUNT query gives wrong results

Julian Hyde created CALCITE-733:
-----------------------------------

             Summary: Multiple distinct-COUNT query gives wrong results
                 Key: CALCITE-733
                 URL: https://issues.apache.org/jira/browse/CALCITE-733
             Project: Calcite
          Issue Type: Bug
            Reporter: Julian Hyde
            Assignee: Julian Hyde


The query {code}select "department_id" as d, count(distinct "education_level") as c1, count(distinct "gender") as c2 from foodmart_clone."employee" group by "department_id";{code} returns 0 rows and should return 12. In the plan {noformat}EnumerableCalc(expr#0..3=[{inputs}], department_id=[$t2], C1=[$t3], C2=[$t1])
  EnumerableJoin(condition=[=($0, $2)], joinType=[inner])
    EnumerableAggregate(group=[{0}], groups=[[{7}]], C2=[COUNT($1)])
      EnumerableAggregate(group=[{7, 15}])
        EnumerableTableScan(table=[[FOODMART_CLONE, employee]])
    EnumerableAggregate(group=[{0}], groups=[[{7}]], C1=[COUNT($1)])
      EnumerableAggregate(group=[{7, 13}])
        EnumerableTableScan(table=[[FOODMART_CLONE, employee]])
{noformat} you can see {{group=[{0}], groups=[[{7}]] }} and this is wrong -- the groups should be made up of the same bits as the group. We should add an assert on this invariant and fixing it will probably cause the plan to return the right results.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)