gpt4 book ai didi

sql - 查询以计算唯一关系的数量

转载 作者:行者123 更新时间:2023-12-04 21:45:06 24 4
gpt4 key购买 nike

我有 3 张 table :
t_user (id, name)
t_user_deal (id, user_id, deal_id)
t_deal (id, 标题)

多个用户可以链接到同一个交易。 (我正在使用oracle,但应该是相似的,我可以适应它)

我怎样才能获得所有用户(名称)以及他与之交易的唯一用户数。

让我们用一些数据来解释:

t_user:
id, name
1, joe
2, mike
3, John

t_deal:
id, title
1, deal number 1
2, deal number 2

t_user_deal:
id, user_id, deal_id
1, 1, 1
2, 2, 1
3, 1, 2
4, 3, 2

我期望的结果:
user_name,他与之交易的唯一用户数
乔,2
迈克,1
约翰,1

我已经尝试过了,但没有得到预期的结果:
SELECT tu.name,
count(tu.id) AS nbRelations
FROM t_user tu
INNER JOIN t_user_deal tud ON tu.id = tud.user_id
INNER JOIN t_deal td ON tud.deal_id = td.id
WHERE
(
td.id IN
(
SELECT DISTINCT td.id
FROM t_user_deal tud2
INNER JOIN t_deal td2 ON tud2.deal_id = td2.id
WHERE tud.id <> tud2.user_id
)
)
GROUP BY tu.id
ORDER BY nbRelations DESC

感谢您的帮助

最佳答案

这应该会给你结果

     SELECT id1, count(id2),name
FROM (
SELECT distinct tud1.user_id id1 , tud2.user_id id2
FROM t_user_deal tud1, t_user_deal tud2
WHERE tud1.deal_id = tud2.deal_id
and tud1.user_id <> tud2.user_id) as tab, t_user tu
WHERE tu.id = id1
GROUP BY id1,name

关于sql - 查询以计算唯一关系的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10902344/

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