【问题标题】:Retrieve attribute with max function使用 max 函数检索属性
【发布时间】:2022-01-03 05:14:08
【问题描述】:

如何使用 max 函数检索其他属性,例如带名称的 max薪水。 要检索最高工资以及他们的姓名,请帮助任何人。

【问题讨论】:

  • 如果答案解决了您的问题,请接受并投票。否则 SO 将保持问题开放。

标签: sql function entity-framework minimax qsqlquery


【解决方案1】:

如果我对这个问题的理解是正确的,你可以使用这样的东西:

select name, salary from table where salary = (select max(salary) from table)

【讨论】:

    【解决方案2】:
       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 来选择随机记录。

    【讨论】:

      【解决方案3】:

      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有时间消耗。 (不同的运行时间可能会有所不同)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-22
        • 2010-12-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-21
        • 1970-01-01
        • 2011-10-09
        相关资源
        最近更新 更多