-- 示例数据表: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', 'IT', 70000),
(3, 'Charlie', 'HR', 55000),
(4, 'David', 'IT', 80000),
(5, 'Eve', 'Marketing', 58000);
-- 使用 ROW_NUMBER() OVER() 按部门对员工进行排序并编号
SELECT
id,
name,
department,
salary,
ROW_NUMBER() OVER (PARTITION BY department ORDER BY salary DESC) AS row_num
FROM
employees;
-- 解释:
-- ROW_NUMBER() 是一个窗口函数,它为结果集的每一行分配一个唯一的行号。
-- OVER() 子句定义了如何对数据进行分区和排序。
-- PARTITION BY department 表示按部门进行分区,每个部门内的行将独立编号。
-- ORDER BY salary DESC 表示在每个分区内按工资从高到低排序。
上一篇:mysql 时间加减
下一篇:mysql修改数据库名称
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站