【发布时间】:2018-11-28 14:13:25
【问题描述】:
我确定我一定遗漏了一些明显的东西。我正在尝试将两个具有不同测量数据的表排成一行以进行分析,当我将这两个表连接在一起时,我的计数返回非常高。
以下是我的 table1
中的正确计数select line_item_id,sum(is_imp) as imps
from table1
where line_item_id=5993252
group by 1;
以下是 table2
中的正确计数select cs_line_item_id,sum(grossImpressions) as cs_imps
from table2
where cs_line_item_id=5993252
group by 1;
当我将表格连接在一起时,我的计数变得不准确:
select a.line_item_id,sum(a.is_imp) as imps,sum(c.grossImpressions) as cs_imps
from table1 a join table2 c
ON a.line_item_id=c.cs_line_item_id
where a.line_item_id=5993252
group by 1;
【问题讨论】:
-
看起来您遇到了笛卡尔连接 - lineitemid 在两个表中不能是唯一的
-
line_item_id 在两个表中都不是唯一的。两个表中的每一行都对应一个测量计数,在表 1 的情况下是 is_imp = 1 或 is_imp = 0。知道如何解决吗?
-
要么加入两个表的主键,要么先上卷再加入
-
您遇到查询扇出,请参阅解释此现象的其他答案:stackoverflow.com/questions/46279081/…
标签: sql join amazon-redshift