什么是 dense 函数?
dense 函数通常指在数据处理或数据库查询中用于生成“密集排名”(dense rank)的函数。与普通排名不同,dense_rank 在遇到相同值时不会跳过后续排名序号。
应用场景
- SQL 中的
DENSE_RANK()窗口函数 - Python pandas 中的
rank(method='dense') - 数据分析中的连续排名需求
SQL 示例
SELECT
name,
score,
DENSE_RANK() OVER (ORDER BY score DESC) AS dense_rank
FROM students;
此查询将为学生按分数降序分配密集排名,相同分数获得相同排名,且后续排名连续。
Pandas 示例(Python)
import pandas as pd
df = pd.DataFrame({'score': [90, 85, 90, 80]})
df['dense_rank'] = df['score'].rank(method='dense', ascending=False)
print(df)
输出结果中,两个90分并列第1名,85分为第2名,80分为第3名,无跳跃。
与 RANK() 和 ROW_NUMBER() 的区别
| 分数 | ROW_NUMBER() | RANK() | DENSE_RANK() |
|---|---|---|---|
| 90 | 1 | 1 | 1 |
| 90 | 2 | 1 | 1 |
| 85 | 3 | 3 | 2 |
| 80 | 4 | 4 | 3 |