【发布时间】:2022-01-17 23:28:57
【问题描述】:
问题:
我有一个格式如下的 BigQuery SQL 表:
| group | users |
|---|---|
| A | 1,2,3 |
| B | 1,5,3 |
| C | 3,6,1 |
| D | 0,1,2 |
我想找到每个组和用户之间所有可能的唯一对,这样表格的格式就会这样:
| 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 对已经分别存在于 group1 和 group2 列中,我不希望对 B,A 成为一个选项。
我的尝试:
【问题讨论】:
-
您使用什么逻辑来确定
A,B胜过B,A?是不是按照字典顺序,A是第一个,因此在您的元组中赢得了第一个位置? -
是的,除了观察的顺序,没有其他逻辑。我可以按字母顺序对值进行排序,但它是基于第一次观察。顺序在这里实际上并不重要,只是防止重复。如果我可以将数据转换为成对矩阵,那就更好了。
标签: sql join google-bigquery