您好我必须在运行时创建一个列(RANK of salary),这取决于一个表(COLLAGE)中的salary列的值,并且该salary与employee表相关联。你能建议如何生成它。 RANK列将包含基于工资的值,即如果工资高于RANK是1 ...按升序排列。
答案 0 :(得分:0)
这可以让你获得你的员工,他们的薪水和职级栏目。
SELECT
*,
@currentRank := @currentRank + 1 AS rank_of_salary
FROM (
SELECT
c.employee_id,
e.salary
FROM
collage c
INNER JOIN employee e ON c.employee_id = e.employee_id
) t, (SELECT @currentRank := 0) r
ORDER BY salary
(SELECT @currentRank := 0)
初始化变量,因此您不需要单独的SET
语句。
每行@currentRank
变量正在增加并存储在rank_of_salary
列中。实际上,我认为它更像row_number
。通过使用ORDER BY salary
子句对输出进行排序来维持此排名的正确排序。