clickhouse 多维分析函数

news2024/11/17 9:52:34

前言

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 =MergeTree
 partition 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;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/22677.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深入理解 Hive UDAF

1. 概述 用户自定义聚合函数(UDAF)支持用户自行开发聚合函数完成业务逻辑。从实现上来看 Hive 有两种创建 UDAF 的方式,第一种是 Simple 方式,第二种是 Generic 方式。 1.1 简单 UDAF 第一种方式是 Simple(简单) 方式,即继承 org.apache.hadoop.hive.ql.exec.UDAF 类,并…

[附源码]java毕业设计线上图书销售管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

R语言绘制柱形图系列

#EasyCharts团队出品&#xff0c; #如有问题修正与深入学习&#xff0c;可联系微信&#xff1a;EasyChartslibrary(ggplot2) #---------------------------单数剧系列柱形图----------------------------------------------------mydata<-data.frame(Cutc("Fair",…

2021年全国研究生数学建模竞赛华为杯A题相关矩阵组的低复杂度计算和存储建模求解全过程文档及程序

2021年全国研究生数学建模竞赛华为杯 A题 相关矩阵组的低复杂度计算和存储建模 原题再现&#xff1a; 一、问题背景   计算机视觉、相控阵雷达、声呐、射电天文、无线通信等领域的信号通常呈现为矩阵的形式&#xff0c;这一系列的矩阵间通常在某些维度存在一定的关联性&…

艾美捷Bio-Helix IRIS9 Plus预染蛋白ladder方案

艾美捷Bio-Helix IRIS9 Plus预染蛋白ladder(9条预染条带&#xff0c;15-180 kDa)是9种分子量为15至170kDa的预染色蛋白的组合。9种重组蛋白与蓝色发色团共价偶联&#xff0c;而1条15kDa的绿色带、一条70kDa的红色带和一条新设计的60kDa的孔雀绿色带作为参考带。IRIS9 Plus预拉伸…

轻量化网络 Mobilenet V1/V2/V3 学习记录

1. 传统卷积2. Mobilenet V12.1 Separable卷积2.2 整体结构3. Mobilenet V23.1 Relu3.2 逆残差3.3 整体结构4. Mobilenet V34.1 SE attention4.2 Switch激活函数5. Mobilenet V3 代码2016年直至现在&#xff0c;业内提出了SqueezeNet、ShuffleNet、NasNet、MnasNet以及MobileNe…

根目录挂载的/dev/mapper/centos-root分区扩容

iso&#xff1a;centos7.9 操作系统40G&#xff0c;我想用其中一块盘扩容给我的根目录 1. 新增一个分区&#xff0c;并将分区设置为物理卷 [rootmaster ~]# parted /dev/vdb GNU Parted 3.3 使用 /dev/vdb 欢迎使用 GNU Parted&#xff01;输入 help 来查看命令列表。 (…

IPD的商业实现过程

一、商业实现的主要流程 在传统的以产品为唯一中心的企业里,商业实现其实是产品实现的结果和表现。但随着企业外部影响商业结果的因素增多,随着产业链中更多的企业间协调机会和协同要求的出项,商业实现像产品实现一样具有实体性,也需要发现机会,需要制定计划,进行商业开发…

【Java 数据结构】栈与OJ题

篮球哥温馨提示&#xff1a;编程的同时不要忘记锻炼哦&#xff01;风在叙述它的阅历&#xff0c;树在书写它的温柔。 目录 1、什么是栈&#xff1f; 2、模拟实现一个栈 2.1 构造方法和成员属性 2.2 push 方法 2.3 pop 方法 2.4 peek 方法 2.5 empty 方法 3. 栈相关的OJ…

一次请求的来龙去脉 - Tomcat架构解析(一)

> Tomcat作为我们学习JavaEE的一个重要的web服务器&#xff0c;对整个请求的来龙去脉有所了解&#xff0c;将直接使得我们对JavaEE的学习更加的事半功倍。并且深入了解Tomcat架构设计之后&#xff0c;将使得我们在以后搭建自己的项目架构提供借鉴。那么接下来&#xff0c;我…

DOTA-PEG-葡萄糖 DOTA-葡萄糖

DOTA-PEG-葡萄糖 DOTA-葡萄糖 中文名称&#xff1a;葡萄糖-四氮杂环十二烷四乙酸 英文名称&#xff1a;Glucose-DOTA 别称&#xff1a;DOTA修饰葡萄糖&#xff0c;DOTA-葡萄糖 PEG接枝修饰葡萄糖 葡萄糖-聚乙二醇-四氮杂环十二烷四乙酸 DOTA-PEG-葡萄糖 纯度&#xff1a…

Vue--》简述组件的数据共享

目录 组件数据共享 父组件向子组件共享数据 子组件向父组件共享数据 兄弟组件共享数据 组件数据共享 组件之间的关系&#xff1a;在项目开发中&#xff0c;组件之间的最常用的关系分为两种&#xff1a;父子关系和兄弟关系。 父组件向子组件共享数据 通过自定义属性实现父…

进大厂必备的 Java 八股文大全(2022 最强精简易懂版)

很多同学会问 Java 面试八股文有必要背吗&#xff1f; 答案是&#xff0c;必须背&#xff0c;博主是个三本&#xff0c;今年凭借这篇八股文斩获了多个大厂暑期实习 offer&#xff0c;相信秋招一定也可以发挥重要作用。 你可以讨厌这种模式&#xff0c;但你一定要去背&#xf…

【Kafka从成神到升仙系列 四】你真的了解 Kafka 的缓存池机制嘛

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱敲代码的小黄&#xff0c;独角兽企业的Java开发工程师&#xff0c;CSDN博客专家&#xff0c;Java领域新星创作者&#x1f4d5;系列专栏&#xff1a;Java设计模式、数据结构和算法、Kafka从入门到成神、Kafka从成神到…

垃圾回收器(宋红康JVM学习笔记)

垃圾回收器分类 按线程数分&#xff0c;可以分为串行垃圾回收器和并行垃圾回收器。 串行回收指的是同一时间内只允许有一个CPU用于执行垃圾回收操作&#xff0c;此时工作线程被暂停&#xff0c;直到垃圾收集工作结束。 并行收集可以运用多个CPU同时执行垃圾回收&#xff0c…

Bootstrap实现个人blog项目(1+X Web前端开发中级 例题)——初稿

&#x1f4c4;题目要求 阅读下列说明、效果图和HTML代码&#xff0c;进行静态网页开发&#xff0c;填写&#xff08;1&#xff09;至&#xff08;20&#xff09;代码。&#x1f9e9;说明 这是个人blog项目&#xff0c;该项目的目录是myblog&#xff0c;现在我们需要编写该blog…

在地图上可视化地理空间数据的12种方法

地图绘制或制图是地理空间数据的可视化。它是一门艺术&#xff0c;因其寻求以一种更容易被非技术受众理解或解释的形式来表示数据。但它也是一门确保视觉效果与所基于的数据准确一致的科学。鉴于地图的优势和局限性&#xff0c;一些样式的地图在表示某些类型的信息方面比其他样…

PTA题目 福到了

“福”字倒着贴&#xff0c;寓意“福到”。不论到底算不算民俗&#xff0c;本题且请你编写程序&#xff0c;把各种汉字倒过来输出。这里要处理的每个汉字是由一个 N N 的网格组成的&#xff0c;网格中的元素或者为字符 或者为空格。而倒过来的汉字所用的字符由裁判指定。 输…

原来 GitHub 不仅能学代码,还有这些东西

今天介绍几个很有意思的 github 开源项目&#xff0c;看过之后就会发现&#xff0c;github 果然深意暗藏。 github 作为一个若隐若现&#xff08;有时墙有时不墙&#xff09;的网站&#xff0c;对于程序员来说&#xff0c;再熟悉不过了&#xff0c;绝大多数时候&#xff0c;我…

铁死亡化合物库

铁死亡是 2012 年新发现的一种细胞死亡机制&#xff0c;目前已经成为科研领域的研究热点。铁死亡是依赖铁离子及活性氧诱导脂质过氧化导致的调节性细胞坏死&#xff0c;其在形态学、生物学及基因水平上均明显不同于凋亡、坏死、自噬等其他形式的程序性性细胞死亡。铁死亡在形态…