mysql - 如何找到客户最多的员工
问题描述
我有一个看起来像这样的员工表
employeenumber int(11) PK
lastname varchar(50)
firstname varchar(50)
还有一张像这样的客户表
customernumber int(11) PK
salesrepemployeenumber int(11)
creditlimit double
如何找到客户最多的员工?我知道我必须对客户表中的 salesrepemployeenumber 列进行查询,以找出哪个员工的客户数量最多,最大???然后我需要返回员工编号和全名。
解决办法是什么???
解决方案
通过以下方式使用加入/计数/组:
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 对它们进行分组。通过COUNT
在GROUP BY
操作期间使用,我们可以计算特定组的不同条目的数量。
从那里可以从结果中选择最大值,就像使用LIMIT
/ORDER BY
SELECT ...
ORDER BY customer_count DESC
LIMIT 1
推荐阅读
- python - 在 django 项目中安装 mysqlclient 时出错
- lua - Lua 数组按指定顺序打印结果
- c# - 是否可以使用 .NET Core 获取未在 EFCore 中提交的添加项?
- msbuild - 知道为什么 MSBuild 会突然开始对我的解决方案中的其他项目执行代码分析吗?
- java - Jtable 与颜色和列组合 - 合并列
- javascript - 将 CSS 添加到由 Javascript 创建的新文档
- java - 如何处理 Runnable 生成的对象?
- android - 如何获取默认的 Android 计时器过期铃声?
- tsql - 使用自定义谓词打印列中的所有值
- algorithm - 图的中心