【问题标题】:redshift nulling columns when joining another table加入另一个表时红移空列
【发布时间】:2021-07-04 11:01:37
【问题描述】:

table_1 有 35 列,table_2 有 20 列

查询是:

select table1.*,
  table2.f1,
  ...
  table2.f20
FROM public.table_1 as table1
    left join public.table_2 as table2
    on table1.id = table2.id 
        and table1.arrival_time::date <= table2.end_date::date
        and table2.activity_date < table2.end_date
;

这可行,我希望返回 469 行,这就是我得到的。但是 table_1 中的几个字段显示为 null 而不是表中的值。

这些字段不是连接的一部分。

由于 IP 问题,我无法提供表格的完整详细信息,table_1 和 table_2 中的每个字段都是 varchar(不要问我为什么时间戳存储为 varchar - 这是一个很长的故事,我没有控制)

此查询在 RDS PostgreSQL 中有效!

任何想法为什么它在红移中有问题?

【问题讨论】:

  • 因为table1 出现在连接的最左侧,连接本身不可能导致NULL 值出现在来自table1 的任何列中。这里发生了其他事情。
  • 您需要检查表 1 在 Redshift 问题中的列中没有 NULL。我预计将数据从 RDS(或任何来源)移动到 Redshift 时会出现数据加载问题。
  • Bill: select * from table_1 显示字段中的值!蒂姆:我知道 - 对,我希望其他人以前见过红移的怪异现象并能想出一个解决方案。

标签: left-join amazon-redshift


【解决方案1】:

好吧,我会很困惑。 table_1 是来自两个来源的数据连接在一起 - 我什至没有想过要查看来源。原来链接的源没有一个值的数据。

只是为了表明,当您只查看一部分数据时,您需要仔细查看所有数据。

现在我要去寻找丢失数据的更好来源。

感谢您的宝贵时间! 詹姆斯

【讨论】:

    猜你喜欢
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-10
    • 1970-01-01
    • 2021-02-26
    • 2021-05-08
    相关资源
    最近更新 更多