当前位置: 首页 > 面试题库 >

SQL查询6个分离度用于网络分析

陶文林
2023-03-14
问题内容

我正在使用D3.js进行网络分析,以显示应用程序中已连接的电话号码(分离度最低为6度)。查找初始连接的SQL(postgres)在下面,非常简单。但是,我很困惑如何修改它以遍历六个级别的连接然后停止。

SELECT player_id, ps.player_state, ps.email, ph.create_date
FROM game.phone_hashes ph
INNER JOIN game.customer_settings cs ON cs.id = ph.player_id
WHERE hash IN (SELECT hash FROM game.phone_hashes WHERE player_id = $1);

通过研究此问题,我发现了提到通用表表达式(CTE)和递归的方法,但是不确定如何在此处应用它们。

我的目标是通过一个公用电话哈希将所有玩家连接到初始玩家($ 1),然后通过一个公用电话哈希将所有玩家连接到这些连接中的每一个,并连续进行6度分离。


问题答案:

我认为这是您的意思:

with recursive tc as(
select $1 as player_id, 1 as level
  union
select ph2.player_id, level+1
  from tc, phone_hashes ph1, phone_hashes ph2
  where tc.player_id=ph1.player_id
  and ph1.hash=ph2.hash
  and tc.level < 6  
)    
select distinct player_id from tc


 类似资料:
  • 问题内容: 我有一个成员对成员连接表。模式为member_id,friend_id,is_active。我想建立一个成为朋友朋友的成员的成员关系列表。我不太确定如何解决该查询,更不用说以半优化的方式了。 上表的工作方式是,member_id和friend_id在另一张表上本质上是同一件事。在我的系统中,除此一张表外,这些ID通常称为member_id。例如,假设我的member_id是21。我的号

  • 问题内容: 我想根据数字与查询的接近程度对文档进行评分。由于我有两个文件和,查询 然后我想。换句话说,我想要类似针对数字的模糊查询。我将如何实现?用例是我想支持价格查询(精确或范围),但想对不在边界内的商品进行排名。 问题答案: 可以使用custom_score查询来实现,其中脚本将根据确切价格与所需价格之间的差的绝对值确定提升。期望的价格应作为参数传递给脚本,以避免针对每个请求重新编译脚本。 另

  • 本文向大家介绍Docker 从网络上分离容器,包括了Docker 从网络上分离容器的使用技巧和注意事项,需要的朋友参考一下 示例 此命令将myAwesomeApp-1容器与app-backend网络分离。容器将不再能够与已断开连接的网络上的其他容器进行通信,也无法使用嵌入式DNS解析器在已断开连接的网络上查找其他容器。

  • 问题内容: Java专家能否请您帮我写以下查询作为SQL查询条件查询的一部分。 问题答案: 您需要编写一个相关的子查询。假设属性/类名称与上面的列/表名称匹配:

  • 我参考了以下链接,用于查询超分类器Fabric网络中的分类器: http://hyperledger-fabric.readthedocs.io/en/release/write_first_app.html 在上面的链接中,他们给出了git-hub链接,在这个链接中我已经完成了所有的步骤,比如,-启动网络-运行查询到分类帐的节点脚本,比如invoke.js,query.js 但是在那个脚本中,他

  • 我想查询表的完整分区。我的复合分区键由组成和是字符串,是整数。 我需要将hour_of_timestamp字段添加到我的分区键,因为在摄取数据时存在热点。 现在我想知道查询数据的完整分区的最有效方法是什么?根据这个博客,使用会在协调器节点上造成大量开销。 使用TOKEN函数并用两个TOKEN查询分区是否更好?如<代码> SELECT * from my table WHERE TOKEN(id,d