Clickhouse 实现row_number、dense_rank
关注微信公共号:小程在线
关注CSDN博客:程志伟的博客
ClickHouse server version 21.6.6
ClickHouse中没有ROW_NUMBER OVER 和DENSE_RANK OVER函数
需要借助特殊函数变相实现
1.创建表并插入数据;
insert into hanshu values ('aa',18,'nan'),('aa',19,'nan'),('aa',20,'nan'),('aa',19,'nv');
2.将分组的字段改为数组类型
select id,groupArray(age) as ranking from hanshu group by id;
3.利用arrayEnumerate函数得到排序。
select id,groupArray(age) as ranking,arrayEnumerate(ranking) as cnt from hanshu group by id;
4.使用array join函数实现行列转换。
select * from (
select id,groupArray(age) as ranking,arrayEnumerate(ranking) as cnt
from hanshu group by id) a
array join cnt;
5.补充一点:arrayEnumerateDense函数实现dense_rank函数的功能
select * from (select id,groupArray(age) as ranking,arrayEnumerateDense(ranking) as cnt from hanshu group by id) a array join cnt order by cnt;
Clickhouse 实现row_number、dense_rank相关推荐
- 【ClickHouse】row_number() over (partition by)的几种实现方法
hive中有row_number() over (partition by)函数,可以一句SQL实现想要的排序,在ClickHouse中有很多种实现方式,本篇就介绍一下几种方法. 目录 1.row_n ...
- ClickHouse技术分享第二弹(英文讲义)
前言 以下是今天为公司小伙伴们做的ClickHouse技术分享的讲义.由于PPT太难做了,索性直接用Markdown来写,搭配Chrome上的Markdown Preview Plus插件来渲染,效果 ...
- Clickhouse实战--开窗函数的使用(1)
当我们需要求同比.环比,或则分组计算数据的最大值,最小值时,就需要用到窗口函数.Clickhouse也提供了很多的window函数.本文就来学习一下Clickhouse的window函数的使用. 官方 ...
- linux和shell
whatis 加其他命令=查看其他命令用法 pwd 返回当前工作目录 ls列出当前目录内容,有哪些文件 ls -l 显示详细信息 ll ls -l -a 显示隐藏文件(以.开头) ls -l -a - ...
- 函数分类,HIVE CLI命令,简单函数,聚合函数,集合函数,特殊函数(窗口函数,分析函数,混合函数,UDTF),常用函数Demo
1.1. 函数分类 1.2. HIVE CLI命令 显示当前会话有多少函数可用 SHOW FUNCTIONS; 显示函数的描述信息 DESC FUNCTION concat; 显示函数的扩展描述信 ...
- oracle计算最大与最小之间数,oracle 分析函数
oracle分析函数,主要五大类 一等级函数:row_number();DENSE_RANK();Rank() 主要就是遇到相同排名时的区别, 查询各部门职位级别最高的2个人 select * fro ...
- oracle把多行合并成字符串,怎样将Oracle多行转换成字符串?
在做一些比较复杂的DB数据导出时,有时会要求"将不固定的多行数据组合成一个字符串返回". 例子:ISV Portal中就遇到了类似的情况,要求对于每一个APP,返回其所属的所有类目 ...
- mysql怎么显示结果窗口_mysql8中窗口函数
在以前的MySQL版本中是没有窗口函数的,直到MySQL8.0才引入了窗口函数.窗口函数是对查询中的每一条记录执行一个计算,并且这个计算结果是用与该条记录相关的多条记录得到的. 1.窗口函数与聚合函数 ...
- SQL常用的几个窗口函数
这里记录一下刷题常用或者面试经常问到的几个窗口函数: 窗口函数的语法: 函数 over (partition by 用于分组的列名 order by 用于排序的列名) For instance: se ...
- mysql自定义变量比较大小_MySQL 自定义变量@ 常用案例
以下文章来源于SQL开发与优化 大家好,我是知数堂SQL 优化班老师 网名:骑龟的兔子 很久没有写文章,最近碰到了一个非常有意思的Oracle SQL 案例, 这个案例,我用了一些窗口函数来解决的,后 ...
最新文章
- Mybatis执行过程源码分析
- 合并excel文件 C语言,再见Ctrl + C!合并100个Excel表格,只需30秒!
- ZetCode 杂项教程
- 抖音下拉框中的下拉词是怎么出来的?
- 使用doxygen查看文件包含关系图
- 数据中台公开课丨可以复用的中台架构建设经验与实践
- python+selenium+chrome driver 64位环境配置
- MySQL--Centos7下安装5.7.19
- 数据挖掘:计算边的中介中心值 edge_betweenness value
- Python制图——图片格式代码探索
- 使用PHP连接MySQL数据库的代码
- 设计师都在用这5个免费素材网站
- 外贸常用术语_13个常用的国际贸易术语详解
- js使用微信分享功能
- 关于transform-style:preserve-3d的些许明了
- Unity URP入门实战
- 计算机二级c++考试
- 分块9题【参考hzw】
- 程序人生 - 过来人经验:程序员怎么升职加薪,迎娶白富美
- 1990-2021年汇率年平均价数据