-- 使用 MySQL 8.0+ 的窗口函数 ROW_NUMBER() 示例
-- 创建一个示例表并插入数据
CREATE TABLE employees (
id INT,
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', 65000),
(5, 'Eve', 'Marketing', 55000);
-- 使用 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 子句将数据按部门分组。
-- 3. ORDER BY 子句指定每个分区内行号的排序规则(这里按工资降序排列)。
-- 4. 最终查询结果会为每个部门的员工按工资从高到低分配行号。
上一篇:linux mysql重启
下一篇:mysql备份表的sql语句
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站