我有12个表,我需要将其中的5列合并成一个新表。
每个表都是不同的月份,但它们都有相同的列名。
我相信我需要使用11个连接,但是当我使用左连接时,我只从第一个表(jan)返回数据。当我使用完整的外连接时,我返回的行充满Null,但看起来像合并表。我正在使用BigQuery.
SELECT
jan.ride_id,
jan.member_casual,
jan.ride_length,
jan.day_of_week,
jan.rideable_type
FROM
`jan_22` as jan
left join `feb_22` as feb
on jan.ride_id= feb.ride_id
我正在寻找的结果是5列与所有12个表合并的数据。我只是想把前两个正确地合并在一起,然后再添加其他的。
我也应该使用select into或insert into创建一个新的表与5列?
谢谢你的帮助。
正如Mikhail Berlyant在评论中建议的那样,您应该使用union
,因为join
和union
之间的区别是join
水平连接表而union
垂直连接表。当你需要5列时,你应该使用union
将它们连接起来,如下所示:
insert dataset.new_table(<the columns(6)>)
SELECT
'Jan' as Month_Name,
jan.ride_id,
jan.member_casual,
jan.ride_length,
jan.day_of_week,
jan.rideable_type
FROM
`jan_22` as jan
UNION ALL
SELECT
'Feb',
feb.ride_id,
feb.member_casual,
feb.ride_length,
feb.day_of_week,
feb.rideable_type
FROM `feb_22` as feb
...
并且由于您可能有返回重复值的行,它将被union
忽略,而不是union all
,因此您应该使用union all
。
请参阅文档中如何使用select
语句将insert
写入表。