我有2张桌子。
表a和表b。我需要每 1 小时刷新一次整个 sql 查询。
%sql
create or replace temp view temp_view_01 as
select a.*, b.bookings,
b.container,
b.Load, b.avg_journey_hours
from delta.`path/table_name/` a
join schema.journy_trackerb
on a.journey_id = b.journey_id
在这里我正在创建一个视图
temp_view_01
我想要*来自表a和b.bookings,b.container,b.Load, b.avg_journey_hours
形成表b——所以这里发生的是当我第一次运行查询时它将成功运行。但是,如果我再次运行查询,它将抛出 AnalysisException: Found duplicate column(s) in the view definition: avg_journey_hours, bookings_cnt, container_cnt, Load
上述错误的原因是,一旦查询第一次成功运行,该列
avg_journey_hours, bookings_cnt, container_cnt, Load
将被添加到视图中,第二次它仅将此表作为视图并尝试在其之上运行查询。这就是重复列错误的原因。
我尝试过的解决方案,我对表 b 列使用了别名: %sql 创建临时视图 temp_view_01 或将其替换为
select a.*, b.bookings as b_bookings,
b.container as b_container,
b.Load as b_load, b.avg_journey_hours as b_avg_journey_hours
from delta.`path/table_name/` a
join schema.journy_trackerb
on a.journey_id = b.journey_id
该查询仍然第一次运行,第二次出现同样的错误。请建议在这种情况下可以做什么?
让我们在从表中选择
*
时使用除了caluse之外的a
select a.* except (a.bookings_cnt, a.container_cnt,a.Teu,a.avg_journey_hours)
对我有用。