加入创建重复行
Posted
技术标签:
【中文标题】加入创建重复行【英文标题】:Join creates duplicate rows 【发布时间】:2020-09-07 21:40:46 【问题描述】:我正在尝试加入 BigQuery 中的 3 个表,这些表包含具有相同标识符 (SKU) 并关注订单日期的产品的销售额。
我的目标是在一张表中包含订单日期、销售表 1、销售表 2、销售表 3 和产品标识符 (SKU)。为此,我一直在尝试下一个查询:
SELECT
Order_Date, Sales1, Sales2, Sales3, SKU
FROM
Table 1
LEFT JOIN
Table 2 ON Order_Date_Table1 = Order_Date_Table2 AND SKU_Table1 = SKU_Table2
LEFT JOIN
Table 3 ON Order_Date_Table1 = Order_Date_Table3 AND SKU_Table1 = SKU_Table3
但是,当其中 2 个表包含同一 SKU 和同一天的销售额时,我会得到重复的行。所有其他联接类型都会发生类似的情况。
我怎样才能避免这种情况?
【问题讨论】:
【参考方案1】:在我看来,聚合可以解决您的问题:
SELECT Order_Date, SKU, SUM(Sales1), SUM(Sales2), SUM(Sales3)
...
GROUP BY Order_Date, SKU
【讨论】:
您好 Holger,非常感谢您的回答。不幸的是,聚合并不能解决问题,因为它只是将“重复的行”相加。我的目标是在一个表中包含三列,每列包含当天不同来源的销售额和 SKU,但是只有在表中有特定日期和 SKU 的销售额时,数据才会相加。然后是重复发生的时候。如果某一天或 SKU 没有其他表的值,则它“消失”。希望能表达清楚...以上是关于加入创建重复行的主要内容,如果未能解决你的问题,请参考以下文章