在Impala中创建表或视图时,行数不同

时间:2019-01-23 14:08:44

标签: mysql hadoop hive impala hue

尝试在Impala中创建表和视图时,行数不同

我试图在Impala中运行查询,该查询具有与另一个表的左外部联接。表结构如下:

SELECT COUNT (*)
FROM (
SELECT A.*,
    B.ORDERED_DATE,
    B.PROMISE_DATE,
    B.REQUEST_DATE,
    B.SCHEDULE_SHIP_DATE,
    A.SCHEDULED_START_DATE,
    A.SCHEDULED_COMPLETION_DATE,
               A.DATE_RELEASED,
               A.DATE_COMPLETED,
               B.ORDERED_DATE_DT,
               B.PROMISE_DATE_DT,
               B.REQUEST_DATE_DT,
               B.ORDERED_QUANTITY,
               a.DEMAND_SOURCE_LINE_NUMBER,
               B.FLOW_STATUS_CODE,
               A.ORDER_NUMBER
          FROM TABLE A
LEFT OUTER JOIN TABLE B
ON (A.DEMAND_SOURCE_LINE_ID) = (B.LINE_ID)
) AAAAA

Demand_source_line_id在此处可以为空。

如果我选择count(*),count(1),则行数总是不同的。同样,内部选择使我的行数不同于外部选择。另外,如果我尝试根据该查询创建视图,则记录计数与如果我根据同一查询创建表的记录计数不同。

有人可以帮我吗?

预计应为3585条记录。我在count(*)上只得到299,而在count(1)上得到662 — 662条记录的需求源行ID不为空。

1 个答案:

答案 0 :(得分:0)

如前所述,Demand_source_line_id可以为null,并且您使用的是in条件,因此,您肯定不会获得预期的输出,并且也会影响计数。 您是否可以在条件下使用合并功能,例如Coalesce(A.DEMAND_SOURCE_LINE_ID,-1)= Coalesce(B.LINE_ID,-1)。