从letecode上面看到的一个sql语句,使用局部变量,感觉比较好,记录下
SELECT e.Name, e.DepartmentId, e.Salary,
@Rank := (CASEWHEN @PrevDept != e.DepartmentId THEN 1
WHEN @PrevSalary = e.Salary THEN @Rank
ELSE @Rank + 1 END) AS Rank,
@PrevDept := e.DepartmentId,
@PrevSalary := e.Salary
FROM Employee e, (SELECT @Rank := 0, @PrevDept := 0, @PrevSalary := 0) r
ORDER BY DepartmentId ASC, Salary DESC
本文介绍了一个来自 LeetCode 的 SQL 实战案例,通过巧妙运用局部变量实现员工按部门和薪资进行排名的功能。该 SQL 语句能够有效地处理大量数据,适用于需要对员工薪资进行快速排名的应用场景。
900

被折叠的 条评论
为什么被折叠?



