闫昆 created HIVE-6803:
------------------------

             Summary: Hive mutil group by results are not normal
                 Key: HIVE-6803
                 URL: https://issues.apache.org/jira/browse/HIVE-6803
             Project: Hive
          Issue Type: Bug
          Components: Query Processor
    Affects Versions: 0.9.0
            Reporter: 闫昆


Hi all 
I'm learning hive,I am by looking at the following two SQL syntax tree , there 
is a problem。

predicate:
                  expr: ((qq rlike '.*(baidu).*') or (qq rlike '.*(sina).*'))
                  type: boolean

explain from telno_qq
insert overwrite local directory '/tmp/s' select telno,count(1)  where qq RLIKE 
'.*(baidu).*' group by telno
insert overwrite local directory '/tmp/d' select telno,count(1)  where qq RLIKE 
'.*(sina).*' group by telno;

predicate:
                  expr: (qq rlike '.*(baidu).*')
                  type: boolean
predicate:
                  expr: (qq rlike '.*(sina).*')
                  type: boolean

explain from telno_qq
insert overwrite local directory '/tmp/s' select telno  where qq RLIKE 
'.*(baidu).*' 
insert overwrite local directory '/tmp/d' select telno  where qq RLIKE 
'.*(sina).*' ;

The first query plan will satisfy the conditions of the two select data into / 
tmp / s and / tmp / d them, but actually I just want to / tmp / s data exist 
only baidu , / tmp / d exists only sina data . But the result is to meet or 
sina baidu records are placed in / tmp / s and / tmp / d both of them went to 
the temporary directory .

The second query plan is right , and the query result is correct



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to