在 Impala 中创建表或视图时不同的行数
Posted
技术标签:
【中文标题】在 Impala 中创建表或视图时不同的行数【英文标题】:Different row count while creating a table or view in Impala 【发布时间】:2019-01-23 14:08:44 【问题描述】:尝试在 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】:正如您提到的 Demand_source_line_id 可以为 null 并且您正在使用 in 条件,因此您肯定不会得到预期的输出,它也会影响计数。 你可以在条件下使用合并函数,例如合并(A.DEMAND_SOURCE_LINE_ID,-1)=合并(B.LINE_ID,-1)。
【讨论】:
以上是关于在 Impala 中创建表或视图时不同的行数的主要内容,如果未能解决你的问题,请参考以下文章