我有一个数据库,其中包含一些表,这些表包含有关不同经理及其公司和前辈的数据。有问题的两个表如下所示:
公司:
company_code founder
C1 Monika
C2 Samantha
Lead_Manager:
lead_manager_code company_code
LM1 C1
LM2 C2
我需要返回company_code,创始人和潜在顾客经理的总数。我有以下代码:
SELECT c.company_code, COUNT(lm.lead_manager_code) as lead_managers
FROM Lead_Manager lm
INNER JOIN Company c ON lm.company_code = c.company_code
GROUP BY c.company_code;
它返回company_code和总线索经理,但没有创始人。当我尝试此代码时:
SELECT c.company_code, c.founder, COUNT(lm.lead_manager_code) as lead_managers
FROM Lead_Manager lm
INNER JOIN Company c ON lm.company_code = c.company_code
GROUP BY c.company_code;
它引发“选择列表中的'Company.founder'列无效,因为它既不包含在聚合函数中也不在GROUP BY子句中。”我已仔细阅读了原因并了解了原因,但是找不到解决方法。
答案 0 :(得分:3)
您需要在GROUP BY
中包括所有不在聚合函数中的列:
SELECT c.company_code, c.founder, COUNT(lm.lead_manager_code) as lead_managers
FROM Lead_Manager lm
INNER JOIN Company c ON lm.company_code = c.company_code
GROUP BY c.company_code, c.founder;