Sql server T-SQL返回具有最大值的行数以及新创建列的最大值本身

Sql server T-SQL返回具有最大值的行数以及新创建列的最大值本身,sql-server,tsql,inner-join,Sql Server,Tsql,Inner Join,表Employee包含四列: employee_id, name, salary, months 任务:返回最大值为salary*months的行数,此最大值为,我最后一次尝试是: 挑选 月*员工工资 其中salary*months=选择MAXmonths*salary 来自员工 添加COUNTmonths*薪水不起作用 SELECT * FROM Employee WHERE salary * months = (SELECT max(salary * months) FROM Emplo

表Employee包含四列:

employee_id, name, salary, months
任务:返回最大值为salary*months的行数,此最大值为,我最后一次尝试是:

挑选 月*员工工资 其中salary*months=选择MAXmonths*salary 来自员工 添加COUNTmonths*薪水不起作用

SELECT * FROM Employee 
WHERE salary * months = (SELECT max(salary * months) FROM Employee)
如果您只想知道有多少条记录,那么:

SELECT count(1),  max(salary * month) FROM Employee 
WHERE salary * months = (SELECT max(salary * months) FROM Employee)

您可以使用带窗口的MAX执行此操作:

这将返回所有行,并将第5列MaxSalary添加到结果中,每一行的值都相同—记录集中的最大月*薪资

Select  employee_id, name, salary, months,
        Max(months * salary) Over (Order By (Select Null)) As MaxSalary
From    Employee