2

有两个表同时包含 ID 和用户名。寻找一个雪花 SQL 查询,该查询会导致从同一个表或两个表中识别不同用户共享的 ID。

表格1

ID 用户
1001 一个
1002
1003 C
1002 D
1005

表 2

ID 用户
1006 H
1005
1003 G
1002 F
1001 一个

预期结果: 1002 - [B,D,F] -> ID 1002 被两个表中的 3 个不同用户使用 1003 - [C,G] -> ID 1003 被两个表中的 2 个不同用户使用

注意:不包括 1001,因为它是两个表中的同一用户

4

2 回答 2

2

使用QUALIFY

SELECT *
FROM (SELECT Id, User
     FROM Table1
     UNION
     SELECT Id, User
     FROM Table2) sub
QUALIFY COUNT(User) OVER(PARTITION BY Id) > 1
于 2021-08-21T14:33:23.183 回答
0

查询导致从同一个表或两个表中识别不同用户共享的 ID。

这对我来说听起来像是聚合:

select id
from ((select id, user from table1) union all
      (select id, user from table2)
     ) t12
group by id
having min(user) <> max(user);
于 2021-08-21T14:59:47.193 回答