在MySQL中,您可以使用窗口函數ROW_NUMBER()
來為結果集中的每一行分配一個唯一的序號。以下是如何使用ROW_NUMBER()
的示例:
首先,假設您有一個名為employees
的表,其中包含以下數據:
id | name | age | department |
---|---|---|---|
1 | Alice | 30 | HR |
2 | Bob | 25 | IT |
3 | Carol | 28 | IT |
4 | Dave | 35 | HR |
現在,假設您想為每個部門按年齡對員工進行排名。您可以使用以下查詢:
SELECT
id,
name,
age,
department,
ROW_NUMBER() OVER (PARTITION BY department ORDER BY age) AS rank
FROM
employees;
這將返回以下結果:
id | name | age | department | rank |
---|---|---|---|---|
1 | Alice | 30 | HR | 1 |
4 | Dave | 35 | HR | 2 |
2 | Bob | 25 | IT | 1 |
3 | Carol | 28 | IT | 2 |
在這個查詢中,ROW_NUMBER()
函數使用PARTITION BY
子句按部門對員工進行分組,并使用ORDER BY
子句按年齡對每個分組中的員工進行排序。rank
列顯示了每個員工在其部門內的排名。