row_number和rank和dense_rank区别,画个表格
时间: 2024-02-07 15:04:23 浏览: 73
SQLSERVER 2005的ROW_NUMBER、RANK、DENSE_RANK的用法
| 特性 | ROW_NUMBER() | RANK() | DENSE_RANK() |
| --------------- | ------------ | -------------| --------------|
| 排序方式 | 按照ORDER BY | 按照ORDER BY | 按照ORDER BY |
| 序号唯一性 | 每行都有唯一值 | 有相同的值则跳过相同的值,不唯一 | 有相同的值则保留相同的值,不唯一 |
| 排名重复处理 | 不重复排名 | 重复排名 | 重复排名 |
| 例子 | SELECT ROW_NUMBER() OVER (ORDER BY age) as rownum FROM employee | SELECT RANK() OVER (ORDER BY salary DESC) as rank FROM employee | SELECT DENSE_RANK() OVER (ORDER BY department) as denserank FROM employee |
注:employee是示例表名,age、salary、department是示例字段名。
阅读全文