1

我可以使用自定义条件而不是相等来连接两个表吗?例如,我在BigQuery中有两个表。表 A 有 3列start_range和。表 B 有来自存储使用云功能的数据,并有一个特定的列“标记”。我正在DataPrep中创建一个流,以便加入这些应该满足条件的表:end_rangegrade

SELECT data.grade FROM  data  INNER JOIN student_data ON student_data.marks BETWEEN data.start_range AND data.end_range 

然后将数据粘贴到新表中。但我找不到任何自定义条件的规定。连接只能匹配两列。任何想法?

4

1 回答 1

1

我认为您最好的机会是在 BigQuery 中实施您的解决方案:

SELECT
  grade, marks
FROM
  `project.dataset.student_data` a
JOIN
  `project.dataset.data` b
ON
  a.marks > b.start_range AND a.marks < b.end_range

如果您坚持使用 Dataprep,我认为没有任何方法可以加入某个范围。如果我正确理解了你的情况,你所拥有的是这样的:

在此处输入图像描述 在此处输入图像描述

...并且您想获得 As 和 Bs 而不是student_data. 这可能不是最优雅的解决方案,但您可以使用带有案例的新公式,如下所示:

  CASE([(marks >= 0) && (marks < 50),
    'D',
    (marks >= 50) && (marks < 100),
    'C',
    (marks >= 100) && (marks < 150),
    'B',
    (marks >= 150) && (marks <= 200),
    'A'])

您只需要点击配方上的“新步骤”,选择“新配方”,然后将其添加到“配方”下。它应该是这样的: 在此处输入图像描述

然后,您甚至可以使用“查找”来连接data表中可能拥有的任何其他有用数据,使用“等级”作为查找键。

于 2018-11-06T14:23:39.750 回答