在AWS Athena中连接两个表时,选择除一列外的所有列



我想在AWS Athena中使用Presto SQL语法连接两个有很多列的大表。我的代码很简单:

select
* 
from TableA as A
left join TableB as B
on A.key_id = B.key_id
;

在加入之后,主键列(key_id(被重复两次。这两个表都有100多列,连接需要很长时间。如何修复它,使key_id列在最终结果中不会重复两次?

p.S.AWS Athena不支持except命令,与Google BigQuery不同。

这是一个不错的特性,但不是标准SQL的一部分。EXCEPT关键字是基于集合的操作(即过滤行(。

在Athena中,与标准SQL一样,您必须指定要包含的列。这样做的理由是它的维护成本较低,事实上,最佳实践是始终明确地声明您想要的列——永远不要把它留给";存在任何列";。这将有助于确保在表结构发生变化时,查询不会改变行为。

某些SQL语言具有这样的功能。我知道Oracle也有这种能力。但据我所知,雅典娜(/PrestoSQL/Trino(没有。

相关内容

  • 没有找到相关文章

最新更新