首页 > 解决方案 > 如何根据雪花中的特定列删除重复项

问题描述

我有一个名为“Mytable”的表,如下所示(只是一个例子),它有两列 Hash 和 last_checked。

Hash    last_checked
1       2021-04-01T12:14:00+00:00
1       2021-04-02T12:14:00+00:00
1       2021-04-03T12:14:00+00:00
2       2021-04-01T12:14:00+00:00
2       2021-04-02T12:14:00+00:00
2       2021-04-03T12:14:00+00:00

我想根据 last_checked 列/字段删除重复的哈希值。我需要保留最新的 last_checked 日期值。输出表如下

Hash    last_checked
1       2021-04-03T12:14:00+00:00
2       2021-04-03T12:14:00+00:00

我没有在任何地方找到答案,所以希望我能在这里得到答案。谢谢

标签: snowflake-cloud-data-platform

解决方案


假设你有 HASHTABLE AS TABLE With Columns Hash & last_checked

在使用 Predicate 之后使用此 HASHTABLE 中的子查询,还使用 ​​Qualify Predicate 过滤 Windows 函数。

从哈希表中删除使用 (

SELECT HASHVAL,last_checked FROM HASHTABLE 限定 ROW_NUMBER() OVER (PARTITION BY HASHVAL ORDER BY last_checked DESC) !=1

) 作为

HASHTABLE_DERIVED

HASHTABLE.HASHVAL=HASHTABLE_DERIVED.HASHVAL 和 HASHTABLE.last_checked=HASHTABLE_DERIVED.last_checked


推荐阅读