Skip to content

In some condition use sub-query make doris return wrong value #1097

@qdore

Description

@qdore

Describe the bug

  1. correct result:
    image
  2. wrong result
    image

To Reproduce
Steps to reproduce the behavior:

  1. Use a normal query sql:
SELECT a.event_day,
          e.new_read_num as new_read_num
   FROM
     (SELECT event_day,
             HLL_UNION_AGG(cuid_uv_set) AS 'all_user_num'
      FROM visd_dws_topic_novel_wide_table_user
      WHERE sid IN ('all')
        AND value IN ('all')
        AND event_day >= STR_TO_DATE('2019-04-29 00:00:00', '%Y-%m-%d %H:%i:%s')
        AND event_day <= STR_TO_DATE('2019-05-06 00:00:00', '%Y-%m-%d %H:%i:%s')
        AND is_dau=1
      GROUP BY event_day) a
     
     LEFT OUTER JOIN
     
     (SELECT t1.event_day,
             count(distinct t1.cuid) AS 'new_read_num'
      FROM
        ( SELECT distinct event_day,
                          cuid
         FROM visd_dws_topic_novel_wide_table_user
         WHERE sid IN ('all')
           AND value IN ('all')
           AND event_day >= STR_TO_DATE('2019-04-29 00:00:00', '%Y-%m-%d %H:%i:%s')
           AND event_day <= STR_TO_DATE('2019-05-06 00:00:00', '%Y-%m-%d %H:%i:%s')
           AND is_read_dau=1 ) t1
      JOIN
        ( SELECT distinct event_day,
                          cuid
         FROM visd_dws_topic_novel_wide_table_user
         WHERE sid IN ('all')
           AND value IN ('all')
           AND event_day >= STR_TO_DATE('2019-04-29 00:00:00', '%Y-%m-%d %H:%i:%s')
           AND event_day <= STR_TO_DATE('2019-05-06 00:00:00', '%Y-%m-%d %H:%i:%s')
           AND is_new=1 ) t2 on t1.event_day = t2.event_day
      and t1.cuid = t2.cuid
      GROUP BY event_day) e ON a.event_day=e.event_day
  1. move this sql to a sub query [expr_qry]
SELECT DATE(event_day) AS __timestamp,
       expr_qry.new_read_num AS new_read_num
FROM
  (SELECT a.event_day,
          e.new_read_num as new_read_num
   FROM
     (SELECT event_day,
             HLL_UNION_AGG(cuid_uv_set) AS 'all_user_num'
      FROM visd_dws_topic_novel_wide_table_user
      WHERE sid IN ('all')
        AND value IN ('all')
        AND event_day >= STR_TO_DATE('2019-04-29 00:00:00', '%Y-%m-%d %H:%i:%s')
        AND event_day <= STR_TO_DATE('2019-05-06 00:00:00', '%Y-%m-%d %H:%i:%s')
        AND is_dau=1
      GROUP BY event_day) a
     
     LEFT OUTER JOIN
     
     (SELECT t1.event_day,
             count(distinct t1.cuid) AS 'new_read_num'
      FROM
        ( SELECT distinct event_day,
                          cuid
         FROM visd_dws_topic_novel_wide_table_user
         WHERE sid IN ('all')
           AND value IN ('all')
           AND event_day >= STR_TO_DATE('2019-04-29 00:00:00', '%Y-%m-%d %H:%i:%s')
           AND event_day <= STR_TO_DATE('2019-05-06 00:00:00', '%Y-%m-%d %H:%i:%s')
           AND is_read_dau=1 ) t1
      JOIN
        ( SELECT distinct event_day,
                          cuid
         FROM visd_dws_topic_novel_wide_table_user
         WHERE sid IN ('all')
           AND value IN ('all')
           AND event_day >= STR_TO_DATE('2019-04-29 00:00:00', '%Y-%m-%d %H:%i:%s')
           AND event_day <= STR_TO_DATE('2019-05-06 00:00:00', '%Y-%m-%d %H:%i:%s')
           AND is_new=1 ) t2 on t1.event_day = t2.event_day
      and t1.cuid = t2.cuid
      GROUP BY event_day) e ON a.event_day=e.event_day) expr_qry
ORDER BY event_day DESC
LIMIT 1000;

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions