-- 使用 MySQL 8.0 及以上版本的窗口函数 ROW_NUMBER()
-- 示例表: employees
-- 创建示例表并插入数据
CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(50),
department VARCHAR(50),
salary DECIMAL(10, 2)
);
INSERT INTO employees (id, name, department, salary) VALUES
(1, 'Alice', 'HR', 60000),
(2, 'Bob', 'Engineering', 70000),
(3, 'Charlie', 'Engineering', 80000),
(4, 'David', 'HR', 55000),
(5, 'Eve', 'Marketing', 65000);
-- 使用 ROW_NUMBER() 函数为每个部门的员工按工资排序并分配行号
SELECT
id,
name,
department,
salary,
ROW_NUMBER() OVER (PARTITION BY department ORDER BY salary DESC) AS row_num
FROM
employees;
-- 解释:
-- 1. ROW_NUMBER() 是一个窗口函数,它为结果集中的每一行生成唯一的行号。
-- 2. PARTITION BY department 表示按部门分组。
-- 3. ORDER BY salary DESC 表示在每个部门内按工资降序排列。
-- 4. 最终查询结果会为每个部门的员工按工资排序,并分配行号。
上一篇:mysql source用法
下一篇:mysql uuid函数
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站