我有一个雪花表,有几个重复的记录。举个例子,假设我有一个带有列的表客户。
名字、姓氏、年龄
在这里,我可以使用行号窗口函数按名字、姓氏和年龄查找重复记录。但无法应用删除 DML 操作,因为它似乎在雪花中不起作用。
有谁知道雪花不允许使用行号和删除的原因
提前致谢
我尝试使用行号窗口函数来查找那些重复项,并按名字、姓氏和年龄的顺序获取唯一的数字,按所有列(名字、姓氏、年龄)进行分区
样本记录(无法分享真实数据)
名字 | 姓氏 | 年龄 |
---|---|---|
脚轮 | 史密斯 | 40 |
脚轮 | 史密斯 | 40 |
达科他州 | 正义 | 32 |
达科他州 | 正义 | 32 |
爱丽丝 | 斯科特 | 12 |
爱丽丝 | 斯科特 | 12 |
珍妮 | l | 23 |
我当前的代码
with cte (firstname, lastname, age) as
(
select 'castor', 'smith', 40 union all
select 'castor', 'smith', 40 union all
select 'dakota', 'justice', 32 union all
select 'dakota', 'justice', 32 union all
select 'alice', 'scott', 12 union all
select 'alice', 'scott', 12 union all
select 'jenny', 'l', 23
)
select * from cte
qualify row_number () over (partition by firstname, lastname, age order by firstname, lastname, age) != 1
解决你的问题最简单的方法就是这个 SQL
INSERT OVERWRITE INTO <your_table>
SELECT DISTINCT * FROM <your_table>;
您可能想在之前创建备份以进行验证
CREATE TABLE CLN_<your_table> CLONE <tour_table>;