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.mzph.cn/news/820518.shtml

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

相关文章

密码学 | 椭圆曲线数字签名方法 ECDSA(上)

目录 1 ECDSA 是什么? 2 理解基础知识 3 为什么使用 ECDSA? 4 基础数学和二进制 5 哈希 6 ECDSA 方程 7 点加法 8 点乘法 9 陷阱门函数! ⚠️ 原文:Understanding How ECDSA Protects Your Data. ⚠️ 写在前面…

测出Bug就完了?从4个方面教你Bug根因分析

01 现状及场景 🎯 1.缺失bug根因分析环节 工作10年,虽然不是一线城市,也经历过几家公司,规模大的、规模小的都有,针对于测试行业很少有Bug根因环节,主流程基本上都是测试提交bug-开发修改-测试验证-发送报…

STM32标准库+HAL库 | CPU片内FLASH存储器数据掉电读写

一、片内FLASH 在STM32芯片内部有一个FLASH存储器,它主要用于存储代码,我们在电脑上编写好应用程序后,使用下载器把编译后的代码文件烧录到该内部FLASH中, 由于FLASH存储器的内容在掉电后不会丢失,芯片重新上电复位后&…

ArduPilot开源飞控之ROS系统简介

ArduPilot开源飞控之ROS系统简介 1. 源由2. ROS系统3. 安装2.1 安装Docker2.2 安装ROS2 4. 总结5. 补充资料 1. 源由 之前在ArduPilot开源飞控之硬件SBC分析中讨论过,个人角度最推荐其中两个系统是: Rpanion-server【推荐,简单】BlueOS【推…

Unity之Unity面试题(四)

内容将会持续更新,有错误的地方欢迎指正,谢谢! Unity之Unity面试题(四) TechX 坚持将创新的科技带给世界! 拥有更好的学习体验 —— 不断努力,不断进步,不断探索 TechX —— 心探索、心进取…

什么是并行通信、串行通信?什么是全双工、半双工、单工? 什么是异步通信、同步通信? 什么是RS232、RS485?什么是pwm?

什么是并行通信、串行通信? 嵌入式系统中的通信是指两个或两个以上的主机之间的数据互交,这里的主机可以是计算机也可以是嵌入式主机,甚至可以是芯片。主机间通信的方式一般可以分为两类:并行通信和串行通信。并行通信是指多个比特…

华为配置静态ARP示例

华为配置静态ARP示例 组网图形 图1 配置静态ARP组网图 静态ARP简介配置注意事项组网需求配置思路操作步骤配置文件相关信息 静态ARP简介 静态ARP表项是指网络管理员手工建立IP地址和MAC地址之间固定的映射关系。 正常情况下网络中设备可以通过ARP协议进行ARP表项的动态学习&…

论文略读:Window Attention is Bugged: How not to Interpolate Position Embeddings

iclr 2024 reviewer 打分 6666 窗口注意力、位置嵌入以及高分辨率微调是现代Transformer X CV 时代的核心概念。论文发现,将这些几乎无处不在的组件简单地结合在一起,可能会对性能产生不利影响问题很简单:在使用窗口注意力时对位置嵌入进行插…

华为再次布局新行业:合作伙伴已超前谋划,该领域将大有可为

华为布局新行业 华为向外界公布了一个重要信息:在过去的三年里,尽管受到美国的制裁,华为仍然成功地完成了超过13000个元器件的国产替代研发,以及4000多块电路板的迭代开发。 不仅在硬件领域取得了显著成就,在软件和生…

oracle 19c数据库W00n进程使用很多PGA内存资源的分析

今天,客户反馈测试环境的数据库PGA资源不足,报错ORA-04036: 实例使用的 PGA 内存超出 PGA_AGGREGATE_LIMIT;分析是多个W00n进程使用大量PGA-触发了BUG,对应解决办法就是打补丁。(民间办法就是KILL进程、重启数据库&…

3d视图模型乱了怎么调?---模大狮模型网

在进行3D建模时,有时候您可能会遇到视图模型混乱的情况。这可能是由于模型结构问题、导入导出错误或编辑操作不当等原因造成的。混乱的模型不仅影响工作效率,还可能导致渲染结果不理想。本文将介绍六种有效的方法来调整混乱的3D视图模型,帮助…

【数据可视化包Matplotlib】Matplotlib基本绘图方法

目录 一、Matplotlib绘图的基本流程(一)最简单的绘图(仅指定y的值)(二)更一般的绘图(同时指定x和y的值)(三)增加更多的绘图元素 二、布局相关的对象——Figur…

Python 物联网入门指南(四)

原文:zh.annas-archive.org/md5/4fe4273add75ed738e70f3d05e428b06 译者:飞龙 协议:CC BY-NC-SA 4.0 第九章:构建光学字符识别的神经网络模块 本章介绍以下主题: 使用光学字符识别(OCR)系统 使…

多种方式打开SOLIDWORKS文件

在 SOLIDWORKS 中有多种打开文件的方法。一些最常用的方法包括双击文件资源管理器中的文件或拖放到 SOLIDWORKS 窗口中。当然,还有一种传统的方法,就是在SOLIDWORKS软件上方单击打开。 使用SOLIDWORKS“打开“命令 SOLIDWORKS 中的“打开“命令与任何其…

基于springboot实现在线考试系统设计【项目源码+论文说明】

基于springboot实现在线考试管理系统演示 摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了基于JavaWeb技术的在线考试系统设计与实现的开发全过程。通过分析基于Java Web技术的在线考试系统设计与实现管理的不…

Python不可变序列类型--字符串

🥇作者简介:CSDN内容合伙人、新星计划第三季Python赛道Top1 🔥本文已收录于Python系列专栏: 零基础学Python 💬订阅专栏后可私信博主进入Python学习交流群,进群可领取Python视频教程以及Python相关电子书合集 私信未回可以加V:hacker0327 备注零基础学Python 订阅专…

ObjectMapper的具体介绍与使用

文章目录 声明一、前言二、ObjectMapper与JSONObject比较1、核心主要有三个部分:依赖包不同 2、ObjectMapper使用概述2.1、工程的pom.xml导包信息2.2、创建案例中的测试对象2.3、对象和JSON相互转化2.3.1、测试代码2.3.2、测试结果展示 2.4、集合和JSON像话转化2.4.…

Matlab|电价型负荷需求响应(考虑电价变化)

程序复现来源于《计及需求响应消纳风电的电-热综合能源系统经济调度 》第四章内容。 一、原理 需求响应的基本原理是需求侧根据电力市场价格和电网要求改变其负荷需求以 获取一定的利益回报。其中 PDR 可通过直观的电价变化信号引导用户调节用电方式, 从而达到优…

Qt for Android 开发环境

在搭建环境时开始感觉还挺顺利的,从 Qt 配置的环境里面看并没有什么问题,可真正编译程序的时候发现全是错误。 最开始的时候安装了 JDK21 最新版本,然后根据 JDK21 安装 ndk, build-tools, Platform-Tools 和 Gradle,但是不管这么…

零基础自学Python,啃透这五本书就够了!

选择合适的学习资源 在自学Python的前期,选择一本适合初学者的Python入门书籍或在线教程,从基础开始学习,好的入门书籍或在线教程会按照逻辑顺序组织知识,从基础概念开始,逐步引导你深入学习Python编程语言。这种系统…