这是我的表格结构:
Anees 1000.00
Rick 1200.00
John 1100.00
Stephen 1300.00
Maria 1400.00
我想找到MAX(工资)和人名。
这是我使用的查询
选择MAX(薪水),emp_name 来自emp1
我得到1400.00 and Anees.
虽然1400是正确的,但Anees是错的,应该是玛丽亚。我需要做出哪些改变
答案 0 :(得分:3)
MySQL允许您在select
语句中包含不在聚合函数中且不在group by
子句中的列。返回任意值。
做你想做的最简单的方法是:
select t.*
from t
order by salary desc
limit 1;
答案 1 :(得分:1)
戈登给出了解释为什么以及最简单的方法来获得你想要的东西。但如果您出于某种原因想要使用MAX()
,您可以这样做
SELECT emp_name, salary
FROM emp1
WHERE salary =
(
SELECT MAX(salary) salary
FROM emp1
)
输出:
| EMP_NAME | SALARY | --------------------- | Maria | 1400 |
这是 SQLFiddle 演示