【发布时间】:2022-01-03 05:14:08
【问题描述】:
如何使用 max 函数检索其他属性,例如带名称的 max薪水。 要检索最高工资以及他们的姓名,请帮助任何人。
【问题讨论】:
-
如果答案解决了您的问题,请接受并投票。否则 SO 将保持问题开放。
标签: sql function entity-framework minimax qsqlquery
如何使用 max 函数检索其他属性,例如带名称的 max薪水。 要检索最高工资以及他们的姓名,请帮助任何人。
【问题讨论】:
标签: sql function entity-framework minimax qsqlquery
如果我对这个问题的理解是正确的,你可以使用这样的东西:
select name, salary from table where salary = (select max(salary) from table)
【讨论】:
With SalaryOrder AS (
Select name, salary, Row_Number() Over(Order By salary Desc) RN
From table
)
Select /*the top clause is needed as described below*/ Top (1) *
From SalaryOrder Where RN = 1
当现有人的薪水相同时,此查询可能返回多条记录。 为了解决这个问题,您可以在 CTE 中添加更多订单或使用 Top one 来选择随机记录。
【讨论】:
RANK() 应该是获取薪水为MAX 的姓名的有效方法。使用sub-query 也会得到相同的结果,但在某些情况下会比RANK() 花费更多的时间。
查询:
SELECT name, salary
FROM
(
SELECT name, salary, RANK() over(ORDER BY salary DESC) AS rnk
FROM your_table
) AS a
WHERE rnk=1
看看db<>fiddle有时间消耗。 (不同的运行时间可能会有所不同)
【讨论】: