gpt4 book ai didi

sql - 计算多对多的出现次数

转载 作者:行者123 更新时间:2023-11-29 14:37:24 25 4
gpt4 key购买 nike

在我的数据库中有下表:

Person (
id,
name,
agentId
)

Agent (
id,
title
)

Agency (
id,
name
)

AgentAgency (
id,
agentId,
agencyId
)

我需要查询来获取有关人员的所有信息 -> 具有额外属性 numberOfAgencies 的代理将显示每个代理的代理数量,并且我需要显示一个属性 agencyName 将显示第一个或唯一代理的名称用户有(如果代理只有 1 个代理,我需要它)。

我试过类似的方法,但没有成功。

 SELECT *, COUNT (aa.agentId) as numberOfAgencies
FROM agentAgencies as aa
LEFT JOIN agent as a ON a.id = aa.agentId
LEFT JOIN agency as ag ON aa.agencyId= ag.id
LEFT JOIN person as p ON p.id = ag.personId
GROUP BY ag.id, aa.id, p.id, a.id

例如,我期望这样的响应:PersonName John, AgencyName Cool Agency, numberOfAgencies 4

最佳答案

SELECT
MAX(p.Name) PersonName,
count(a.id) NoOfAgencies,
MAX(a.name) AgencyName
FROM persons p
LEFT OUTER JOIN agent g ON g.Id=p.agentId
LEFT OUTER JOIN AgentAgency aa ON aa.agentId = g.Id
LEFT OUTER JOIN Agency a on a.id = aa.agencyId
GROUP BY a.Id

关于sql - 计算多对多的出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42260826/

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