clickhouse 多维分析函数
创始人
2024-04-10 21:01:41

前言

clickhouse的强大之处在于充分利用内存计算的高效性从而快速得到计算结果,尤其是对于一些需要做聚合分析、统计等场景下,clickhouse提供了一些按维度分析的函数,本文将介绍clickhouse常用的几类多维分析函数。

groupby函数

还记得在mysql中,使用sql语句进行groupby的场景吧,即对查询结果按照某个字段,或者多个字段进行分组汇聚,具有相同业务场景的数据被分到同一个组中;

在clickhouse中,也提供了groupby的功能,不过clickhouse的groupby提供了更丰富的视角,即维度对查询结果进行分组,主要包括:

  • with rollup【上卷】;
  • with cube【多维分析】;
  • with total【统计总数】;

rollup

rollup也叫上卷,举例来说,在A表中,其中有a,b两个字段,根据字段的有序性进行group by,比如像下面这样,那么在clickhouse中即成为上卷;

group by a

group by a,b

cube

rollup也叫多维分析,仍然以A表为例,group by的字段如果进行排列组合可以得出很多种结果,比如:

group by a

group by a,b

group by b

group by b,a

案例实操

1、创建一张数据表

create table t_order_mt1(id UInt32,sku_id String,total_amount Decimal(16,2),create_time Datetime
) engine =MergeTreepartition by toYYYYMMDD(create_time)primary key (id)order by (id,sku_id);

2、插入一批数据

insert into t_order_mt1 values
(101,'sku_001',1000.00,'2022-09-01 12:00:00'),
(101,'sku_002',2000.00,'2022-09-01 12:00:00'),
(103,'sku_004',2500.00,'2022-09-01 12:00:00'),
(104,'sku_002',2000.00,'2022-09-01 12:00:00'),
(105,'sku_003',600.00,'2022-09-02 12:00:00'),
(106,'sku_001',1000.00,'2022-09-04 12:00:00'),
(107,'sku_002',2000.00,'2022-09-04 12:00:00'),
(108,'sku_004',2500.00,'2022-09-04 12:00:00'),
(109,'sku_002',2000.00,'2022-09-04 12:00:00'),
(110,'sku_003',600.00,'2022-09-01 12:00:00');

 

3、使用从右至左去掉维度进行小计

 select id , sku_id,sum(total_amount) from t_order_mt1 group by id,sku_id with rollup

4、从右至左去掉维度进行小计,再从左至右去掉维度进行小计 

select id , sku_id,sum(total_amount) from t_order_mt group by id,sku_id with cube;

从展示的结果来看,即按照id和sku_id两个字段的不同的组合,得到了各种组合下的统计结果

5、with totals: 只计算合计

select id , sku_id,sum(total_amount) from t_order_mt group by id,sku_id with totals;

相关内容

热门资讯

就在昆明市中心!非遗展演每天精...   锣鼓喧天迎新春,非遗盛宴启新程!“心安是归处 非遗即生活”2026云南非遗过大年活动即将于1月3...
蚂蚁集团登记蚂蚁阿福相关作品著... 转自:证券时报人民财讯1月27日电,企查查APP显示,近日,蚂蚁集团旗下蚂蚁逸康(广州)信息技术有限...
长安期货屈亚娟:铜价上涨动能略... .ct_hqimg {margin: 10px 0;} .hqimg_wrapper {text-a...
营销自动化实战:如何触发豆包“... 摘要 在 2026 年的流量战场,最大的悲哀不是 AI 没提到你,而是 AI 夸了你半天,用户却找不...
广州科技职业技术学院专业排名,... 广州科技职业技术学院专业排名,特色重点专业有哪些 填报高考志愿时,广州科技职业技术学院专业排名,特色...