【问题标题】: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 和同一天的销售额时,我会得到重复的行。所有其他联接类型都会发生类似的情况。

我怎样才能避免这种情况?

【问题讨论】:

    标签: mysql google-bigquery


    【解决方案1】:

    在我看来,聚合可以解决您的问题:

    SELECT Order_Date, SKU, SUM(Sales1), SUM(Sales2), SUM(Sales3)
    ...
    GROUP BY Order_Date, SKU
    

    【讨论】:

    • 您好 Holger,非常感谢您的回答。不幸的是,聚合并不能解决问题,因为它只是将“重复的行”相加。我的目标是在一个表中包含三列,每列包含当天不同来源的销售额和 SKU,但是只有在表中有特定日期和 SKU 的销售额时,数据才会相加。然后是重复发生的时候。如果某一天或 SKU 没有其他表的值,则它“消失”。希望能表达清楚...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-25
    • 2019-03-22
    • 2016-09-19
    • 2013-06-24
    • 1970-01-01
    • 2021-06-28
    • 1970-01-01
    相关资源
    最近更新 更多