gpt4 book ai didi

java - 计算 6 - 分离度与 pl/sql 的算法和查询?

转载 作者:行者123 更新时间:2023-11-30 11:05:19 25 4
gpt4 key购买 nike

我有一个名为 friendgraph(friend_id, friend_follower_id) 的表,我想计算给定 friend 和给定度数的 6 度分离。该表如下所示:

friend_id, friend_follower_id
0,1
0,9
1,47
1,12
2,41
2,66
2,75
3,65
3,21
3,4
3,94
4,64
4,32

如何在给定 friend_id_a 和 order_k 的情况下构建查询,找到与 friend_id_a 相差 k 度的用户?

这是我的初始查询文件的样子:

create or replace function degree6
(friend_id_a in integer, order_k in integer)
return sys_refcursor as crs sys_refcursor;

我正在寻找任何类型的帮助或资源来帮助我开始并最终获得输出。

更新:输出将是与 friend_id_a 相差 k 度的其他 friend 的列表。

定义 A 的 k 阶跟随者 B,使得 B 不是 A,并且:1. 如果 k = 0,则 A 是 A 的唯一 0 序跟随者。2. 如果 k = 1,则 A 的追随者是 A 的 order-1 追随者。3. 如果 k > 1;那么对于 i = 0 到 k-1,B 不是 A 的 order-i follower; B是一个追随者订单的(k-1)个追随者A

谢谢。

最佳答案

您可以构建分层查询并按级别和 friend_id 进行过滤。例如获取用户 0 的所有 3 级好友:

SELECT friend_id, friend_follower_id, level
FROM friends
WHERE LEVEL = 3
CONNECT BY PRIOR friend_follower_id = friend_id
START WITH friend_id = 0

关于java - 计算 6 - 分离度与 pl/sql 的算法和查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29690275/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com