mysql - 如何在查询中找到前 3 名的薪水?
问题描述
我有 2 个包含这样数据的表
员工 | ID |
---|---|
一个 | 1 |
一个 | 1 |
乙 | 2 |
D | 4 |
乙 | 2 |
ID | 薪水 |
---|---|
1 | 1250 |
1 | 254 |
3 | 434 |
4 | 1200 |
1 | 124 |
我如何找到前三名的薪水?
Select sum(salaries) from employees.table
left join salaries.table
on id = id
order by salary desc limit 3
这是正确的方法吗?
解决方案
您的员工表有重复项,这看起来很成问题。我建议你只使用salaries
:
select sum(salary)
from salaries s
group by id
order by sum(salary) desc
limit 3 ;
如果您打算将第一个表用于任何事情,您需要了解为什么会有重复,以便找出处理它们的最佳方法。
推荐阅读
- swift - 如何从firebase下载多个图像?
- python - Elasticsearch:缺少 Content-Type 标头
- kubernetes - 无法通过 SSL 终止使用 cert-manager 和 nginx 入口控制器
- cmd - 如何在 HTA 中一一运行 CMD 命令
- ios - 如何将文件发送到“文件”应用中的“最近删除”文件夹?
- r - 在 R 中取消列出字符串并粘贴/连接
- python - 决策树算法实现
- python - 学习python,来自有效讲师的正确示例文件。第一次处理它,追加和弹出命令在我的电脑上不起作用
- scala - 如何更正 Scala 构造函数的错误参数?
- python - Matplotlib.savefig 忽略轴并在图像周围绘制黑色边框