mysql

mysql rownumber()用法是什么

小亿
81
2024-09-28 23:26:42
栏目: 云计算

MySQL中没有ROW_NUMBER()这个函数,您可能是想问窗口函数ROW_NUMBER()。

ROW_NUMBER()是一个窗口函数,用于在结果集中为每一行分配一个唯一的连续整数,根据指定的排序顺序。这个整数可以作为行号来使用。

ROW_NUMBER()的基本语法如下:

ROW_NUMBER() OVER (PARTITION BY column1, column2, ... ORDER BY column1, column2, ...)

参数说明:

示例:

假设有一个名为employees的表,包含以下列:id、name、salary、department_id。现在想要查询每个部门中薪水最高的员工,可以使用以下SQL语句:

SELECT id, name, salary, department_id
FROM (
  SELECT id, name, salary, department_id,
         ROW_NUMBER() OVER (PARTITION BY department_id ORDER BY salary DESC) AS rank
  FROM employees
) t
WHERE t.rank = 1;

在这个查询中,首先使用窗口函数ROW_NUMBER()为每个部门的员工分配一个基于薪水的降序排列的行号。然后在外层查询中筛选出每个部门行号为1的员工,即每个部门薪水最高的员工。

0
看了该问题的人还看了