[英]Using Google big query sql split the string in a column to multiple columns without breaking words
[英]Why is Big Query creating a new column instead of joining two columns when using a Join?
当我在 BigQuery 中使用 Join 时,它会完成它,但会创建一个名为 Id_1 和 Date_1 的新列,其中包含来自主键的相同信息。 什么会导致这个? 这是代码。
SELECT
*
FROM
`bellabeat-case-study-373821.bellabeat_case_study.daily_Activity`
JOIN
`bellabeat-case-study-373821.bellabeat_case_study.sleep_day`
ON
`bellabeat-case-study-373821.bellabeat_case_study.daily_Activity`.Id = `bellabeat-case-study-373821.bellabeat_case_study.sleep_day`.Id
AND `bellabeat-case-study-373821.bellabeat_case_study.daily_Activity`.Date = `bellabeat-case-study-373821.bellabeat_case_study.sleep_day`.Date
我进行了查询并希望表通过Id
和Date
的主键连接,但这反而创建了两个具有相同信息的新列。
当您在select 列表中使用*
时, JOIN
子句的ON
变体会生成结果集中两个表的所有列。 如果两边都有同名的列,那么两者都会显示在结果中 [名称略有不同],如您所见。
您可以改用JOIN
子句的USING
变体,它合并列并为USING
子句中提到的每一列只生成一个结果列。 这可能就是你想要的。 请参阅BigQuery - INNER JOIN 。
您的查询可以采用以下形式:
SELECT
*
FROM
`bellabeat-case-study-373821.bellabeat_case_study.daily_Activity`
JOIN
`bellabeat-case-study-373821.bellabeat_case_study.sleep_day`
USING (Id, Date)
注意:只有当您要加入的列具有完全相同的名称时,才能使用USING
。 例如,如果列在一个表中称为id
而在另一个表中称为employee_id
,则无法使用它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.