ClickHouse--17--聚合函数总结

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 环境
    • 1.创建clickhouse表
    • 2.插入数据
  • 函数
    • (1)count:计算行数
    • (2)min:计算最小值
    • (3)max:计算最大值
    • (4)sum:计算总和,只能计算数字之和
    • (5)avg:算数平均值,仅支持数字
    • (6)any: 选择第一个遇到的值
    • (7)anyHeavy:列出频繁出现的值,一般情况,结果是不确定的
    • (8)anylast:选出最后一个出现的值
          • AggregateFunction(anyLast, String) ==不支持分布式表==
          • SimpleAggregateFunction(anyLast, String) ==不支持分布式表==
    • (9)argMin
    • (10)argMax:类比argMin
    • (11)avgWeighted(x, weight):加权算数平均值,x为值,weight为值的加权
    • (12)topK(num)(col):
    • (13)topKWeighted(num)(col,weight):
    • (14)groupArray:生成数组
    • (15)groupUniqArray:类似于groupArray,不过会将生成的数组去重
    • (16)groupArrayInsertAt:参数指定位置插入数组
    • (17)groupArraySample(max_size)(arg)
    • (18)uniq:计算字段去重后的近似数量
    • (19)uniqExact:计算不同参数值的准确数量
    • (20)uniqCombined:
    • (21)quantile(level)(arg):
    • (22)quantiles(level1,level2...)(arg):可以同时计算多个分位数,返回结果为数组


环境

1.创建clickhouse表

CREATE TABLE ck_test
(`id` String COMMENT 'id',`int_1` UInt32 COMMENT '整型列1',`int_2` UInt32 COMMENT '整型列2',`str_1` String COMMENT '字符串列1',`str_2` String COMMENT '字符串列2'
)
ENGINE = MergeTree
ORDER BY id

2.插入数据

insert into ck_test values (1,1,10,'a','A'),(2,2,12,'b','B'),(3,3,13,'c','C'),(4,4,14,'d','D'),(5,5,15,'e','E'),(6,6,15,'f','F')(7,6,15,'f','F');    

在这里插入图片描述
在这里插入图片描述

此外,如果出现了临时分区还没有合并的情况,any方法查询的结果,在合并前和合并后的结果是不一样的

函数

在这里插入图片描述

(1)count:计算行数

在这里插入图片描述
在这里插入图片描述

(2)min:计算最小值

在这里插入图片描述

(3)max:计算最大值

在这里插入图片描述

(4)sum:计算总和,只能计算数字之和

在这里插入图片描述

(5)avg:算数平均值,仅支持数字

select avg(int_1),avg(int_2) from ck_test;

(6)any: 选择第一个遇到的值

在这里插入图片描述

(7)anyHeavy:列出频繁出现的值,一般情况,结果是不确定的

在这里插入图片描述

(8)anylast:选出最后一个出现的值

在这里插入图片描述

AggregateFunction(anyLast, String) 不支持分布式表
SimpleAggregateFunction(anyLast, String) 不支持分布式表

(9)argMin

在这里插入图片描述
在这里插入图片描述

(10)argMax:类比argMin

(11)avgWeighted(x, weight):加权算数平均值,x为值,weight为值的加权

在这里插入图片描述

(12)topK(num)(col):

返回指定列中出现频率最多的值的数组,数组按照出现频率降序排序,num指定返回数组元素的个数,col为指定的字段
在这里插入图片描述

(13)topKWeighted(num)(col,weight):

类似于topK,col列每一个输入出现的次数,都会乘上weight权重,这个weight可以是类似于col的一个字段
在这里插入图片描述

(14)groupArray:生成数组

在这里插入图片描述
在这里插入图片描述

(15)groupUniqArray:类似于groupArray,不过会将生成的数组去重

(16)groupArrayInsertAt:参数指定位置插入数组

在这里插入图片描述
语法:groupArrayInsertAt(default_x, size)(x, pos)

其中,default_x为默认的在空位上替换的值,size为最终的数组长度,因为数组可能很长,会有空位,所以要用default_x填充

x为要被插入的值组成的数组,从0到pos这个位置都用default_x填充

按我的理解,int_2为15的那一行,应该有e,f,f三个值,不知道为啥只出现了e

(17)groupArraySample(max_size)(arg)

生成采样数组,max_size为数组最大长度,arg可以是字段,也可以是字段拼接的表达式,如concat(‘字符:’,arg1)

在这里插入图片描述
在这里插入图片描述

(18)uniq:计算字段去重后的近似数量

在这里插入图片描述

(19)uniqExact:计算不同参数值的准确数量

在这里插入图片描述

(20)uniqCombined:

计算不同参数值的近似数量,uniq虽然也是近似数量,但uniqCombined消耗内存多,精度也比uniq高

(21)quantile(level)(arg):

计算近似分位数,level是分位数常量,取值范围0-1,arg可以是数字类型,也可以是date,datetime类型

在这里插入图片描述

(22)quantiles(level1,level2…)(arg):可以同时计算多个分位数,返回结果为数组

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ollama、FastGPT大模型RAG知识库结合使用案例

参考: https://ollama.com/download/linux https://doc.fastai.site/docs/intro/ https://blog.csdn.net/m0_71142057/article/details/136738997 https://doc.fastgpt.run/docs/development/custom-models/m3e/ https://concise-eater-d47.notion.site/Ollama-Fastgpt-b170…

Web开发:网络配置基础指南--理解LAN口、WAN口及IP配置

目录 一、LAN口和WAN口 二、LANIP和WANIP 三、通过命令行获取私有IP地址 四、子网掩码、默认网关、DNS 五、DHCP服务 一、LAN口和WAN口 LAN口是连接到局域网络(LAN)的接口,比如路由器连接电脑、智能手机等等。 WAN口是连接到广域网络…

性能优化工具

CPU 优化的各类工具 network netperf 服务端&#xff1a; $ netserver Starting netserver with host IN(6)ADDR_ANY port 12865 and family AF_UNSPEC$ cat netperf.sh #!/bin/bash count$1 for ((i1;i<count;i)) doecho "Instance:$i-------"# 下方命令可以…

AI大模型日报#0416:李飞飞《2024年人工智能指数报告》、Sora加入Adobe、李彦宏聊百度大模型之路

​导读&#xff1a; 欢迎阅读《AI大模型日报》&#xff0c;内容基于Python爬虫和LLM自动生成。目前采用“文心一言”生成了每条资讯的摘要。标题: 刚刚&#xff0c;李飞飞团队发布《2024年人工智能指数报告》&#xff1a;10大趋势&#xff0c;揭示AI大模型的“喜”与“忧” 摘…

nginx 前后的分离 负载均衡

首先前端随便访问后端的一个端口,后端监听这个端口进行服务转发。 比如:8888 VITE_APP_API_BASEURL = http://192.168.10.111:8888 然后nginx在我们的服务器上部署两个后端 这里我用docker部署了两个 当然你也可以在两个服务器上面部署两个后端,只要在nginx配置代理的时…

OpenCV轻松入门(八)——图片卷积

对图像和滤波矩阵进行逐个元素相乘再求和的操作就相当于将一个二维的函数移动到另一个二维函数的所有位置&#xff0c;这个操作就叫卷积 卷积需要4个嵌套循环&#xff0c;所以它并不快&#xff0c;除非我们使用很小的卷积核。这里一般使用3x3或者5x5 图像滤波 图像滤波是尽量…

Clob数据类型解析及读取转换

1.简介 CLOB&#xff08;Character Large Object&#xff09; 是指用于存储大型文本数据的数据类型。与之对应的另一个数据类型是 BLOB&#xff0c;指的是二进制大型对象。CLOB 类型在实际应用中非常广泛&#xff0c;尤其是在存储长篇文字、图书、电子邮件以及其他类似数据时&…

JPA (Java Persistence API)

一、Jpa的介绍 JPA &#xff0c;是一套Sun公司Java官方制定的ORM 规范。 ORM&#xff0c;即 对象关系映射 &#xff08;Object Relational Mapping&#xff09;&#xff0c;是一种程序技术&#xff0c;用于 在关系数据库和业务实体对象之间做映射 。ORM 框架的存在&#xff0c;…

007 springboot整合mybatis-plus 增删改查 ModelAndView jsp 分页

文章目录 MybatisplusConfig.javaReceiveAddressController.javaReceiveAddress.javaReceiveAddressMapper.javaReceiveAddressServiceImpl.javaIReceiveAddressService.javaServerResult.javaServletInitializer.javaSpringbootDemoApplication.javareceive_address.sqlReceiv…

python接口自动化测试 —— unittest框架suite、runner详细使用

test suite 测试套件&#xff0c;理解成测试用例集一系列的测试用例&#xff0c;或测试套件&#xff0c;理解成测试用例的集合和测试套件的集合当运行测试套件时&#xff0c;则运行里面添加的所有测试用例 test runner 测试运行器用于执行和输出结果的组件 test suite、tes…

DBUtils工具类的使用

1、DBUtils是什么 为了更加简单地使用JDBC&#xff0c;Apache组织提供了一个DBUtils工具&#xff0c;它是操作数据库的一个组件&#xff0c;实现了对JDBC的简单封装&#xff0c;可以在不影响数据库访问性能的情况下简化JDBC的编码工作量。DBUtils工具要有2个作用。 写数据&am…

Upload-labs(Pass-14 - Pass-16)

Pass-14 &#xff08;图片马&#xff0c;判断文件类型&#xff09; 图片的格式在防护中通常是不会使用后缀进行判断的依据&#xff0c;文件头是文件开头的一段二进制码&#xff0c;不同类型的图片也就会有不同的二进制头。   JPEG (jpg)&#xff0c;文件头&#xff1a;FF D…