-- MySQL 序号函数示例代码
-- 1. 使用 ROW_NUMBER() 函数生成序号
WITH ranked_data AS (
SELECT
employee_id,
department_id,
salary,
ROW_NUMBER() OVER (PARTITION BY department_id ORDER BY salary DESC) AS rank
FROM employees
)
SELECT * FROM ranked_data;
-- 解释:
-- 这段代码使用了 ROW_NUMBER() 函数来为每个部门的员工按工资从高到低排序,并生成一个序号。
-- PARTITION BY department_id 表示按部门进行分组,ORDER BY salary DESC 表示在每个部门内按工资降序排列。
-- 2. 使用 RANK() 函数生成排名(相同值有相同排名,后续排名跳跃)
WITH ranked_data AS (
SELECT
employee_id,
department_id,
salary,
RANK() OVER (PARTITION BY department_id ORDER BY salary DESC) AS rank
FROM employees
)
SELECT * FROM ranked_data;
-- 解释:
-- 这段代码使用了 RANK() 函数来为每个部门的员工按工资从高到低排序,并生成一个排名。
-- 如果有相同的工资,它们将获得相同的排名,而后续排名会跳跃。
-- 3. 使用 DENSE_RANK() 函数生成排名(相同值有相同排名,后续排名不跳跃)
WITH ranked_data AS (
SELECT
employee_id,
department_id,
salary,
DENSE_RANK() OVER (PARTITION BY department_id ORDER BY salary DESC) AS rank
FROM employees
)
SELECT * FROM ranked_data;
-- 解释:
-- 这段代码使用了 DENSE_RANK() 函数来为每个部门的员工按工资从高到低排序,并生成一个排名。
-- 如果有相同的工资,它们将获得相同的排名,但后续排名不会跳跃。
如果你需要更多的示例或详细的解释,请告诉我!
上一篇:mysql导出sql文件
下一篇:mysql 调用存储过程
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站