假设您得到以下名为Employee的简单数据库表,该表具有2个列,分别名为Employee ID和Salary:
Employee
Employee ID Salary
3 200
4 800
7 450
我想写一个查询,从员工那里选择max(salary)作为max_salary,2nd_max_salary
然后它应该返回
max_salary 2nd_max_salary
800 450
我知道如何找到第二高的薪水
SELECT MAX(Salary) FROM Employee
WHERE Salary NOT IN (SELECT MAX(Salary) FROM Employee )
或找到第n个
SELECT FROM Employee Emp1 WHERE (N-1) = ( SELECT COUNT(DISTINCT(Emp2.Salary)) FROM Employee Emp2
WHERE Emp2.Salary > Emp1.Salary)
但我无法弄清楚如何将这2个结果结合起来以获得所需的结果
您可以只运行2个查询作为内部查询以返回2列:
select
(SELECT MAX(Salary) FROM Employee) maxsalary,
(SELECT MAX(Salary) FROM Employee
WHERE Salary NOT IN (SELECT MAX(Salary) FROM Employee )) as [2nd_max_salary]
SQL小提琴演示
问题内容: 我指的是以下查询,以找到雇员的Nth最高薪水。 一位先生说,此查询有效。有人可以解释一下如何将COUNT(n等于1到X,其中X是不同工资总额)的值等于&n会产生这个结果吗? 我试图了解数据库如何在内部处理此查询并产生结果? 谢谢你。 问题答案: 首先,查询将返回 最低 薪水值。要返回最高薪水值,您必须更改为。 接下来,此查询的工作方式是:首先找到一个唯一的薪水值列表作为一个派生表,然后
员工属于一个部门(外键=D_ID)。员工有一个SSN(主键)、姓名、工资和D_ID。
问题内容: 假设有工资表: 我目前正在使用此代码(AutoIT脚本: 因此,如果Hour_number在低小时或高小时之间,那两个查询是完美的。我需要某种查询,它基本上会执行以下操作: 然后将其重复为“默认”,因为找不到该员工。 补充:如果仅通过1个查询未找到$ Employee,是否可以尝试使用“ Default”? 问题答案: 如果仅通过1个查询未找到$ Employee,是否可以尝试使用“
我有一个表员工与字段部门,员工和工资。我想要一个查询,以列出部门最高工资和该工资的员工姓名。 我知道这很简单。我在谷歌上搜索,但找到了这样的答案,只列出了部门和工资
问题内容: 我需要有一个清单,每个部门只有一名最高薪水雇员。allEmployees是源列表。 问题答案: 您可以使用分组收集器来做到这一点: 与静态导入 此代码创建了所有员工的,并在的帮助下将其与部门分组。对于分类为同一键的所有值,我们只需要保留薪水最高的员工,因此我们将其与进行比较,比较器会将薪金与进行比较。由于返回一个(以处理列表为空的情况),我们通过调用来包装它,并返回一个仅返回雇员的装订
问题内容: 我正在尝试从员工列表中检索薪水最低的列表。到目前为止,我已经设法找到 了 薪水最低 的 员工,但是如果几个员工的薪水相同,我想检索多个员工。 我认为解决方案应该是一成不变的。因此,我无法创建一个薪水最低的变量,而只能检查每个薪水是否小于或等于Low_Salary。我尝试了一下,它奏效了。 因此,我相信我的问题是“ .min(比较器)”仅检索最低的一个。 问题答案: 首先创建一个,其关键