SQL Count函数不会对加入的查询

时间:2017-11-19 00:03:06

标签: mysql sql sql-server

有两张桌子。

艺术家:ArtistID,ArtistFirstName,ArtistLastName,ArtistEmail,ArtistPhone,传记,ReferenceNumber,AGENTID

代理:AGENTID,AgentFirstName,AgentLastName,公司名称,AgentEmail,中介电话

尝试列出每个预订代理人所代表的艺术家人数

注意:代理商可以代表许多艺术家,但每位艺术家只有一个代理商。

这是我得到的,不知道为什么它不起作用,谢谢

SELECT ag.AgentFirstName,ag.AgentLastName,ag.CompanyName,ag.AgentID,COUNT 
(ar.ArtistID) AS NumberOfArtists
FROM Agent ag
JOIN Artist ar ON ar.AgentID  = ag.AgentID
GROUP BY ArtistID

2 个答案:

答案 0 :(得分:1)

您正在通过错误的列聚合。您需要由代理聚合:

SELECT ag.AgentFirstName, ag.AgentLastName, ag.CompanyName, ag.AgentID, 
       COUNT(ar.ArtistID) AS NumberOfArtists
FROM Agent ag JOIN
     Artist ar
     ON ar.AgentID  = ag.AgentID
GROUP BY ag.AgentFirstName, ag.AgentLastName, ag.CompanyName, ag.AgentID

答案 1 :(得分:0)

SELECT ag.AgentFirstName, ag.AgentLastName, ag.CompanyName, ag.AgentID,
       COUNT(ar.ArtistID) AS NumberOfArtists
FROM Agent ag
JOIN Artist ar ON ar.AgentID = ag.AgentID
GROUP BY ag.AgentFirstName, ag.AgentLastName, ag.CompanyName, ag.AgentID