gpt4 book ai didi

mysql - 查询 A 喜欢 B,B 喜欢 C,两个分离度

转载 作者:行者123 更新时间:2023-11-29 05:42:50 38 4
gpt4 key购买 nike

假设您有下表,名为 Likes:

A|B
---
a|b
a|f
a|e
a|i
b|a
b|i
c|d
e|p

在此表中,A 中的值表示“喜欢”B 中的人。因此,a 喜欢 b,a 喜欢 f,a 喜欢 e,依此类推。 如何编写查询以获取与每个用户相隔两度的不同用户的数量?因此,举个例子,如果 a 喜欢 b,那么 b 与 a 的分离度为一个。如果 a 喜欢 b,b 喜欢 c,那么 c 与 a 的分离度为 2。再举个例子,如果a喜欢b,b喜欢a,那么a和自己就是两度分离(我们不排除循环)。所以输出应该是这样的:

User|CountOfUsersWhoAreTwoDegreesFromUser
-----------------------------------------
a | -
b | -
c | -
e | -

现在,我不确定每个用户的计数是多少,所以我没有将其写在上表中。此外,表中没有人喜欢他们自己。因此,您不会在点赞中看到像 a|a 或点赞中的 b|b 这样的组合。谁能帮我解决这个问题?

最佳答案

select primary.A, count(*)
from likes primary
inner join likes secondary on primary.B = secondary.A
group by primary.A

关于mysql - 查询 A 喜欢 B,B 喜欢 C,两个分离度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5265961/

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