首页 > 解决方案 > 如何找到客户最多的员工

问题描述

我有一个看起来像这样的员工表

employeenumber int(11) PK 
lastname varchar(50) 
firstname varchar(50) 

还有一张像这样的客户表

customernumber int(11) PK 
salesrepemployeenumber int(11) 
creditlimit double

如何找到客户最多的员工?我知道我必须对客户表中的 salesrepemployeenumber 列进行查询,以找出哪个员工的客户数量最多,最大???然后我需要返回员工编号和全名。

解决办法是什么???

标签: mysql

解决方案


通过以下方式使用加入/计数/组:

SELECT 
    employees.employeenumber, -- employee id
    employees.lastname, -- sample employee name
    COUNT(customers.customernumber) AS customer_count -- the number of customers
FROM employees
LEFT OUTER JOIN customers -- I'm using a left join so we can see people with 0 as well
    -- get some shorter column names man
    ON customers.salesrepemployeenumber = employees.employeenumber
GROUP BY employees.employeenumber

简而言之,您选择所有员工,然后将它们与客户表的结果合并,然后按员工的 id 对它们进行分组。通过COUNTGROUP BY操作期间使用,我们可以计算特定组的不同条目的数量。

从那里可以从结果中选择最大值,就像使用LIMIT/ORDER BY

SELECT ...
ORDER BY customer_count DESC
LIMIT 1

推荐阅读