mysql 聚合函数问题

dlzp1991 2017-11-19 11:05:04

如表,查询各个职位工资最高的员工的信息
我用SELECT * FROM `emp` GROUP BY job HAVING sal = MAX(sal);
为什么只能查出两条记录
...全文
249 5 点赞 打赏 收藏 举报
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
吉普赛的歌 2017-11-21
SELECT 
	`job`
	,MAX(`sal`) AS `max_sal` 
FROM `emp`
GROUP BY `job`
#3 说的对, 这个方面 MySQL 确实不如 SQL Server。 不过看楼主结贴率, ……
  • 打赏
  • 举报
回复
这就是mysql 不强制规范 聚合查询的结果
  • 打赏
  • 举报
回复
小野马1209 2017-11-20
改一改就可以
select job,max(sal) as maxsal from `emp` Group By job
  • 打赏
  • 举报
回复
二月十六 2017-11-20
试试这样
SELECT  emp.*
FROM emp
JOIN ( SELECT job ,
MAX(sal) AS sal
FROM emp
GROUP BY job
) t ON emp.job = t.job
AND emp.sal = t.sal
  • 打赏
  • 举报
回复
RINK_1 2017-11-20

select * from emp A
where not exists (select 1 from emp where job=A.job and sal>A.sal)
  • 打赏
  • 举报
回复
相关推荐
发帖
疑难问题
加入

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2017-11-19 11:05
社区公告
暂无公告