You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@impala.apache.org by "Quanlong Huang (JIRA)" <ji...@apache.org> on 2019/04/04 15:35:00 UTC

[jira] [Created] (IMPALA-8386) Incorrect predicate in a left outer join query

Quanlong Huang created IMPALA-8386:
--------------------------------------

             Summary: Incorrect predicate in a left outer join query
                 Key: IMPALA-8386
                 URL: https://issues.apache.org/jira/browse/IMPALA-8386
             Project: IMPALA
          Issue Type: Bug
            Reporter: Quanlong Huang


skyyws <sk...@163.com> reported a bug [in the mailing list|https://lists.apache.org/thread.html/0bdbbaa6bb35b552f050ae30587b7d75b78a72ec60007a8bc0a4a8a9@%3Cdev.impala.apache.org%3E] on the following data set:
{code:java}
table A
+------+
| a_id |
+------+
| 1    |
| 2    |
+------+
table B
+------+--------+
| b_id | amount |
+------+--------+
| 1    | 10     |
| 1    | 20     |
| 2    | NULL   |
+------+--------+
table C
+------+------+
| a_id | b_id |
+------+------+
| 1    | 1    |
| 2    | 2    |
+------+------+{code}
The following query returns a wrong result "1":
{code:java}
select count(1) from (
    select t2.a_id,t2.amount1,t2.amount2
    from( select a_id from a) t1
    left outer join (
        select c.a_id,sum(amount) as amount1,sum(amount) as amount2
        from b join c  on b.b_id = c.b_id group by c.a_id) t2
    on t1.a_id = t2.a_id
) t;
{code}
Removing "t2.amount2" can get the right result "2":
{code:java}
select count(1) from (
    select t2.a_id,t2.amount1
    from( select a_id from a) t1
    left outer join (
        select c.a_id,sum(amount) as amount1,sum(amount) as amount2
        from b join c  on b.b_id = c.b_id group by c.a_id) t2
    on t1.a_id = t2.a_id
) t;
{code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)