clickhouse dense_rank()
时间: 2023-09-08 11:15:59 浏览: 156
在ClickHouse中,没有内置的dense_rank()函数。但是,你可以使用rank()函数和row_number()函数来实现类似的功能。rank()函数会为每个分区内的行分配一个排名,如果有相同的值,则会跳过下一个排名。row_number()函数会为每个分区内的行分配一个唯一的行号,不会跳过排名。所以,如果你想找出排名前几名的员工,你可以使用rank()函数或row_number()函数。例如,你可以使用以下查询来找出每个部门薪水排名前三的员工:
SELECT depName, empNo, name, salary, rank() OVER (PARTITION BY depName ORDER BY salary DESC) AS rank
FROM empsalary
WHERE rank <= 3
这将返回每个部门薪水排名前三的员工的部门名称、员工编号、姓名和薪水。
#### 引用[.reference_title]
- *1* *3* [Clickhouse实战--开窗函数的使用(1)](https://blog.csdn.net/zg_hover/article/details/124582300)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [窗口函数(Mysql与ClickHouse)](https://blog.csdn.net/weixin_56567361/article/details/126874318)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文