我有一个大约10万行的表格,布局如下:
+----+-----------+------------+-------------------+
| ID | PIN | RAID | Desired Output ID |
+----+-----------+------------+-------------------+
| 1 | 80602627 | 1737852-1 | 1 |
| 2 | 80602627 | 34046655-1 | 1 |
| 3 | 351418172 | 33661 | 2 |
| 4 | 351418172 | 33661 | 2 |
| 5 | 351418172 | 33661 | 2 |
| 6 | 351418172 | 34443321-1 | 2 |
| 7 | 491863017 | 26136 | 3 |
| 8 | 491863017 | 34575 | 3 |
| 9 | 491863017 | 34575 | 3 |
| 10 | 661254727 | 26136 | 3 |
| 11 | 661254727 | 26136 | 3 |
| 12 | NULL | 7517 | 4 |
| 13 | NULL | 7517 | 4 |
| 14 | NULL | 7517 | 4 |
| 15 | NULL | 7517 | 4 |
| 16 | NULL | 7517 | 4 |
| 17 | 554843813 | 33661 | 2 |
| 18 | 554843813 | 33661 | 2 |
+----+-----------+------------+-------------------+
id列具有唯一的值,pin和raid列是两个单独的标识号,用于将链接的id分组在一起。所需的output id列就是我希望sql所做的,本质上是查看pin列和raid列,找出它们之间的关系。
例如,如果期望的输出id=2,ids 3-6在pin=351418172上匹配,那么ids 17-18也匹配,因为33661的raid在ids 3-5的行中。
此外,null也将出现在pin列中,但不会出现在任何其他列中。
我确实发现了一个类似的问题文本,但因为它是在bigquery中,我不确定它是否会有帮助。
已经尝试破解这个一段时间没有运气,任何帮助非常感谢。
2条答案
按热度按时间laik7k3q1#
我想你的问题可以解决。我不确定pin和raid的组合应该是什么,但我想你可以想出这样的方法:
ubby3x7f2#
我相信我已经找到了一个解决这个问题的方法。当它一行一行地运行时,它运行得非常慢,在pin/raid上只会深入两个链接,但这对于99%以上的情况应该足够了。
如果有任何明显的迹象,我们将非常感谢您的建议。
上面帖子中的id是debtorno代码: