SQL 中唯一的非重复值对

Unique pairs of non-repeating values in SQL

问题:

我有一个 BigQuery SQL table 格式如下:

group users
A 1,2,3
B 1,5,3
C 3,6,1
D 0,1,2

我想找到每个组和用户之间所有可能的唯一对,这样 table 将被格式化为:

group1 group2 group1_users group2_users
A B 1,2,3 1,5,3
A C 1,2,3 3,6,1
A D 1,2,3 0,1,2
B C 1,5,3 3,6,1
B D 1,5,3 0,1,2
C D 3,6,1 0,1,2

我不想重复逆对。因此,如果对 A,B 已经分别存在于 group1group2 列中,我 希望对 B,A 成为一个选项.

我试过的:

我对如何实现这一点感到困惑。我尝试修改其他帖子(here, here 等)的代码,但无济于事。

此查询returns您要查找的内容:

with my_data as (
select "A" as _group, [1,2,3] as users
UNION ALL
select "B" as _group, [1,5,3] as users
UNION ALL
select "C" as _group, [3,6,1] as users
UNION ALL
select "D" as _group, [0,1,2] as users
)

SELECT 
  l._group as _group_1, 
  r._group _group_2, 
  l.users as group1_users, 
  r.users group1_users, 
FROM my_data l 
  JOIN my_data r 
  ON l._group < r._group