mysql 聚合函数问题

dlzp1991 2017-11-19 11:05:04

如表,查询各个职位工资最高的员工的信息
我用SELECT * FROM `emp` GROUP BY job HAVING sal = MAX(sal);
为什么只能查出两条记录
...全文
322 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
吉普赛的歌 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)

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧