SQL Count / GROUP问题

时间:2017-11-06 16:07:38

标签: sql

尝试显示公司名称,First&amp;呼叫次数小于5的姓氏。这表示哪些客户呼叫了<5次,并且说明了呼叫者所属的公司,但我正在寻找哪些公司具有&lt; 5个电话。

https://imgur.com/a/cFj8v - 数据库表

https://imgur.com/ChMZK1p - 预期结果

https://imgur.com/a/jnQUV - 我的结果

SELECT Company_name, First_name, Last_name, COUNT(Company_name) as nc
FROM Customer JOIN Caller ON Customer.Company_ref = Caller.Company_ref
JOIN Issue ON Caller.Caller_id = Issue.Caller_id
GROUP by Company_name, First_name, Last_name
HAVING COUNT(Company_name) < 5

2 个答案:

答案 0 :(得分:0)

从查询的部分中删除选择和分组中的First_Name,Last_Name,您将得到您要求的内容(我猜您可能还需要更多内容,但如果您只是想要,请理解这一矛盾每个公司的呼叫,但也希望每个呼叫者的名字和姓氏以某种方式与它相关联,即不同分组的信息os)

SELECT Company_name, COUNT(Company_name) as nc 
FROM Customer JOIN Caller ON Customer.Company_ref = Caller.Company_ref JOIN Issue ON Caller.Caller_id = Issue.Caller_id 
GROUP by Company_name
HAVING COUNT(Company_name) < 5

答案 1 :(得分:0)

这样的事情怎么样...... 在子查询中,找到您感兴趣的公司。然后让该公司的人员接听电话。

(我没有对此进行测试,因此可能不准确,但它应该给你一个想法)

SELECT Company_name, First_name, Last_name FROM Customer JOIN Caller ON Customer.Company_ref = Caller.Company_ref JOIN Issue ON Caller.Caller_id = Issue.Caller_id WHERE Company_name in (SELECT Company_name FROM Customer JOIN Caller ON Customer.Company_ref = Caller.Company_ref JOIN Issue ON Caller.Caller_id = Issue.Caller_id GROUP by Company_name HAVING COUNT(Company_name) < 5)