错误:在 SQL 的视图定义中发现重复的列

问题描述 投票:0回答:1

我有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

该查询仍然第一次运行,第二次出现同样的错误。请建议在这种情况下可以做什么?

sql databricks databricks-sql
1个回答
0
投票

让我们在从表中选择

*
时使用除了caluse之外的
a
select a.* except (a.bookings_cnt, a.container_cnt,a.Teu,a.avg_journey_hours)
对我有用。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.