我从azuredatabricks表中提取数据,只将第一行(rank=1)加载到postgres中的相似表(相同的表结构)中。但是,在加载之前,我检查postgres表中的column5值是否与databricks表相同,如果是,则必须从postgres表中删除该行,并加载其余的值。
在这里,我要遍历提取的databricks表的行,并对postgres中的每一行运行delete命令。请建议一种在sql中实现这一点而不使用游标的方法?
我从azuredatabricks表中提取数据,只将第一行(rank=1)加载到postgres中的相似表(相同的表结构)中。但是,在加载之前,我检查postgres表中的column5值是否与databricks表相同,如果是,则必须从postgres表中删除该行,并加载其余的值。
在这里,我要遍历提取的databricks表的行,并对postgres中的每一行运行delete命令。请建议一种在sql中实现这一点而不使用游标的方法?
1条答案
按热度按时间ocebsuys1#
创建临时表
stg
.从databricks表加载它。理想情况下,从databricks导出时使用:
SELECT * FROM databricks_table WHERE rank_column = 1 -- or WHERE RANK() OVER(PARTITION BY whatever ORDER BY whatever_else) = 1
然后,在postgresql上,使用merge语句:查看postgresql文档中的merge语句以了解更多详细信息。。。