目前,我正在将数据从API加载到雪花中,但找不到一种很好的方法来只保留表中唯一的行。这个API没有保证唯一的密钥。
我探索过:
如果有人对这三条路径中的任何一条使用样例查询有任何解决方案,我将非常感激。
我要找的东西的伪代码
sql = "MERGE INTO INVOICES USING INVOICES_TEMP WHEN NOT MATCHED"
cur.execute(sql)编辑:这样不会导致错误,但是我可以一次又一次地执行它,它不断地向表中添加相同的行,并且不会像我想要的那样阻止重复。因此,也许我已经降低了语法,但是我对表/字段的使用是不正确的。
MERGE INTO TABLE USING TABLE_TEMP ON TABLE.FIELD1=TABLE_TEMP.FIELD1
AND TABLE.FIELD2=TABLE_TEMP.FIELD2 AND TABLE.FIELD3=TABLE_TEMP.FIELD3
WHEN NOT MATCHED THEN INSERT (FIELD1,FIELD2,FIELD3) VALUES
(TABLE_TEMP.FIELD1,TABLE_TEMP.FIELD2,TABLE_TEMP.FIELD3)发布于 2020-12-16 07:50:29
如果我正确地理解了你的问题,我宁愿你的第一个选择。可以将合并语句中的列比较扩展到所有列,这样就不局限于键。
merge into target_table using source_table
on target_table.col1 = source_table.col1
and target_table.col2 = source_table.col2
and target_table.col3 = source_table.col3
...关于合并的更多信息:https://docs.snowflake.com/en/sql-reference/sql/merge.html
https://stackoverflow.com/questions/65318155
复制相似问题