SQL查询最高工资的员工,求原因~
答案:4 悬赏:0 手机版
解决时间 2021-11-12 20:00
- 提问者网友:沉默的哀伤
- 2021-11-12 14:15
SQL查询最高工资的员工,求原因~
最佳答案
- 五星知识达人网友:青灯有味
- 2021-11-12 15:25
我们一般都会这样写:
select name from table where salary = (select max(salary) from table);
答: select max(salary) from table 这句话就是取出公司所有人员的最大工资
然後抓出最高工资的人员是谁,也就是题目所要求的答案
为什么不能这样写?
select name,max(salary) from table;
答: 这句话是抓出员工所拿到的最高薪资是多少,比如一个员工可能每个月拿的工资不一样
而你这句话就是抓这个员工拿得最高时候的薪资是多少,只是针对这个员工
而题目的要求是要抓所有员工中拿到最高薪资的人员.
不知道是不是明白.呵呵
用数据举例
name salary
A 3000
B 4000
B 5000
A 2000
select max(salary) from table ----是取出最高薪资,得到的结果是5000
select name,max(salary) from table----这是取出每个员工最高工资拿多少,得到的结果如下
A 3000
B 5000追问这句呢?
select name,max(salary) salary_max from table order by salary_max desc;追答这句话的意思是将每个员工的最高薪资取出来,然後按最高薪资排序(倒序)
不过这句号应该有语法错误哦,改成如下:
select name,max(salary) salary_max from table order by max(salary) desc;
那麼出来的第一笔资料就是最新薪资的员工,如果最高薪资没有重复的情况下.
select name from table where salary = (select max(salary) from table);
答: select max(salary) from table 这句话就是取出公司所有人员的最大工资
然後抓出最高工资的人员是谁,也就是题目所要求的答案
为什么不能这样写?
select name,max(salary) from table;
答: 这句话是抓出员工所拿到的最高薪资是多少,比如一个员工可能每个月拿的工资不一样
而你这句话就是抓这个员工拿得最高时候的薪资是多少,只是针对这个员工
而题目的要求是要抓所有员工中拿到最高薪资的人员.
不知道是不是明白.呵呵
用数据举例
name salary
A 3000
B 4000
B 5000
A 2000
select max(salary) from table ----是取出最高薪资,得到的结果是5000
select name,max(salary) from table----这是取出每个员工最高工资拿多少,得到的结果如下
A 3000
B 5000追问这句呢?
select name,max(salary) salary_max from table order by salary_max desc;追答这句话的意思是将每个员工的最高薪资取出来,然後按最高薪资排序(倒序)
不过这句号应该有语法错误哦,改成如下:
select name,max(salary) salary_max from table order by max(salary) desc;
那麼出来的第一笔资料就是最新薪资的员工,如果最高薪资没有重复的情况下.
全部回答
- 1楼网友:英雄的欲望
- 2021-11-12 18:29
max是聚合函数 你搜搜聚合函数的用法
- 2楼网友:笑迎怀羞
- 2021-11-12 17:56
这么写,sql语法都通不过吧!
一般要这么写是:select name,max(salary) from table group by name;
但是这个会查询出一组值,与你想要的结果不符合。
一般要这么写是:select name,max(salary) from table group by name;
但是这个会查询出一组值,与你想要的结果不符合。
- 3楼网友:往事埋风中
- 2021-11-12 16:16
你可以这样理解,select name from table;可能返回N行而select max(salary) from table;始终只能返回一行.他们要一起需要联合group by 分类.
可以这样写:
select top 1 name,salary from table order by salary desc
可以这样写:
select top 1 name,salary from table order by salary desc
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯