在使用sql时出现问题,我一直在试图弄清楚如何解决这个问题
“对于每个客户展示:公司名称,联系人姓名,呼叫次数少于5的呼叫次数”
我的代码现在找到所有呼叫者少于5次呼叫,但是没有找到0呼叫的呼叫者?此外,还为每家公司分配了一个联系人,该联系人应显示在该公司的5号呼叫总数旁边。
我意识到我可能没有充分解释它,但是如果你看https://sqlzoo.net/wiki/Helpdesk_Medium_Questions(问题8),你就找不到问题,看看所有的表如何链接以及正确的输出。
非常感谢任何帮助。感谢
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
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)
GROUP BY Company_name, First_name, Last_name
答案 0 :(得分:1)
对于您的请求,您应该使用count(*)而不是conut(company_name)
SELECT Company_name, First_name, Last_name, COUNT (*) 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 (*) < 5