我有一个有5列的表:
Party_ID | Site_ID | Party_Name | Group_Num | Code
---------+---------+------------+-----------+-----
123 A3D MSFT 092079177 04
212 B5C MSFT 092079177 05
313 S4F MSFT 828539556 08
314 G3B MSFT 828434232 09
515 KM9 MSFT 022901486 10
616 NM5 MSFT 022901486 09
期望输出:
Party_ID | Site_ID | Party_Name | Group_Num | Code | Count
---------+---------+------------+-----------+------+--------
123 A3D MSFT 092079177 04 12
212 B5C MSFT 092079177 05 2
313 S4F MSFT 828539556 08 3
314 G3B MSFT 828434232 09 1
515 KM9 MSFT 022901486 10 2
我想按'groupnum'分组,这是一个每行9位数的值,同时将所有相关字段数据作为一个新表拉入。组\u num中有重复值,但与其他字段中的唯一值配对。
新的sql和使用雪花。我现在有这个来计算组\u num在下面的查询中给参与方\u id的发生次数:
SELECT *
FROM F1_TABLE
GROUP BY PARTY_ID
HAVING COUNT(DISTINCT Group_Num) > 1)
ORDER BY COUNT(DISTINCT Group_Num) DESC;
2条答案
按热度按时间ycggw6v21#
因此,不确定是否要最终得到一个完全重复数据消除的表,但是这个窗口函数+
QUALIFY
允许您为每个重复选择要保留的记录:本例选择第一方id,但是您可以选择任何您想要的(或者让snowflake通过排除
ORDER BY
条款。如果这不是你要找的,你能提供你的问题结果表是什么样的吗?
bfnvny8b2#
不知道你到底想达到什么目的,但是如果你想要的只是第一个附加了groupnum计数的表,那么只需要在子查询中进行计数并连接到它。
如果您也试图以某种方式对主表进行重复数据消除,请执行select distinct或group by