sql - 如何用 * 标记薪水最高的员工?- SQL 服务器
问题描述
我有一个问题 - 这是我的Employee
桌子:
Name | Department | Salary
------+-------------+-------------
Ram |IT | 1000
Shyam |HR | 2000
Sita |Management | 5000
Joe |IT | 6000
Lacy |HR | 2000
Gen |Management | 4000
Maria |IT | 2000
Antony|HR | 3000
Raman |Management | 50000
现在我想要这样的结果:
Department | Salary |
-------------+------------+
IT | 20000
HR | 30000
Management | 50000 | *
哪里*
将用于标记任何部门的最高工资。我尝试了许多不成功的尝试,例如:
Select
Salary,
Case
When Salary = Max(Salary) Then '*'
End
From
tblEmployees
Group By
Salary
解决方案
你想要一个窗口函数:
Select Department, max(Salary) as salary,
(case When max(Salary) = max(Max(Salary)) over ()
Then '*'
End)
from tblEmployees
group by department;
推荐阅读
- swiftui - geometryReader 滑动时图像闪烁
- c++ - 堆排序 C++ 调试
- windows - 如何检查 IIS APP 是否在调试模式下生成
- ruby-on-rails - 弹性搜索边缘图未正确搜索
- javascript - 如何获取 JSON(来自 Dynamics 365 Business Central API 的 OData)并访问其元素以在本地存储
- assembly - 尝试使用系统调用 gettimeofday() 在 armv7l 上的汇编中获取伪随机数,但系统调用上的寄存器变为 0?
- google-analytics - 特定浏览量序列的平均页面停留时间
- .net - 是否可以在模块中使用 DefaultParameterValue?
- powerbi - 使用 DAX 计算度量时允许切片器
- python - 源代码中没有特定的抓取数据