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):可以同时计算多个分位数,返回结果为数组

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于SpringBoot和Vue的企业客户管理系统

今天要和大家聊的是基于SpringBoot和Vue的企业客户管理系统 !!! 有需要的小伙伴可以通过文章末尾名片咨询我哦!!! 💕💕作者:李同学 💕💕个人简介…

2024年认证杯A题保暖纤维的保暖能力完整思路代码论文讲解与分析

保暖纤维的保暖能力建模 摘要 本文针对保暖纤维的保暖能力建模问题进行了深入研究。首先,文章指出现有的一些保暖性能指标,如热导率、热阻值、CLO值等,存在一些局限性,无法全面反映保暖材料的实际保暖性能。因此,本文提出了建立一个更加完善的保暖能力评价指标体系,包括热传导…

MySQL进阶一

目录 1.使用环境 2.条件判断 2.1.case when 2.2.if 3.窗口函数 3.1.排序函数 3.2.聚合函数 ​​​​​​​3.3.partiton by ​​​​​​​3.4.order by 4.待续 1.使用环境 数据库:MySQL 8.0.30 客户端:Navicat 15.0.12 2.条件判断 2.1.ca…

AWS游戏全球智能翻译,助力企业出海

随着全球数字化时代的到来,游戏行业已经成为跨越国界、语言和文化的强大力量。然而,要将游戏产品成功推向全球市场并确保用户体验的流畅与愉悦,语言障碍却是一道不可忽视的挑战。在这个多元化的世界中,如何解决语言障碍&#xff0…

视频知识整理

1 视频播放器原理 视频播放器播放一个互联网上的视频文件,需要经过以下几个步骤: 解协议:将流媒体协议的数据,解析为标准的相应的封装格式数据 解封装:将封装格式的数据,分离成为音频流压缩编码数据和视…

Unity之PlayableGraph实现动画的正播和倒播

内容将会持续更新,有错误的地方欢迎指正,谢谢! Unity之PlayableGraph实现动画的正播和倒播 TechX 坚持将创新的科技带给世界! 拥有更好的学习体验 —— 不断努力,不断进步,不断探索 TechX —— 心探索、心进取&am…

Java基于微信小程序的在线投稿小程序(V2.0),附源码

博主介绍:✌IT徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇&#x1f3…

深入浅出 -- 系统架构之日均亿级吞吐量的网关架构(DNS轮询解析)

在前篇关于《Nginx》的文章中曾经提到:单节点的Nginx在经过调优后,可承载5W左右的并发量,同时为确保Nginx的高可用,在文中也结合了Keepalived对其实现了程序宕机重启、主机下线从机顶替等功能。 但就算实现了高可用的Nginx依旧存在…

vivado 在硬件中调试逻辑设计

在硬件中调试逻辑设计 设计中包含调试核后 , 您可使用运行时间逻辑分析器功能来对硬件中的设计进行调试。 使用 Vivado Logic Analyzer 进行设计调试 Vivado Logic Analyzer 功能可用于与设计中运行的新 ILA 、 VIO 和 JTAG-to-AXI Master 调试核进行交互。…

LRU缓存结构【C语言】

#include <stdio.h> #include <stdlib.h>//双链表节点结构 typedef struct Node {int key;int value;struct Node* pre;struct Node* next; } Node;//LRU结构 typedef struct {int capacity;struct Node* head;struct Node* tail;struct Node** cache; }LRUCache;…

TCP/IP 协议栈在 Linux 内核中的 运行时序分析

1、Linux内核概述 1.1 Linux内核结构 一个完整的Linux内核一般由5部分组成&#xff0c;它们分别是内存管理、进程管理、进程间通信、bai虚拟文件系统和网络接口。 1、内存管理 内存管理主要完成的是如何合理有效地管理整个系统的物理内存&#xff0c;同时快速响应内核各个子…

顶顶通呼叫中心中间件(mod_cti基于FreeSWITCH)-回铃音补偿

文章目录 前言联系我们解决问题操作步骤 前言 回铃音&#xff1a; 当别人打电话给你时&#xff0c;你的电话响铃了&#xff0c;而他听到的声音叫做回铃音。回铃音是被叫方向主叫方传送&#xff0c;也是彩铃功能的基础。我们平时打电话听到的“嘟 嘟 嘟 嘟”的声音&#xff0c;就…

4-云原生监控体系-Grafana-基本使用

1. 介绍 使用Grafana&#xff0c;您可以通过漂亮、灵活的仪表板创建、探索和共享所有数据。查询、可视化、提醒和理解您的数据&#xff0c;无论数据存储在何处。 图片出处&#xff1a; https://grafana.com/grafana/ 官方网站 2. 界面介绍 Connections 可以配置数据源&#x…

物联网实战--驱动篇之(七)RTC时钟(DS1302)

目录 一、RTC简介 二、DS1302介绍 三、初始化 四、字节读写 五、功能函数 一、RTC简介 实时时钟&#xff0c;简称RTC&#xff0c;这个在STM32的外设里也有&#xff0c;不过STM32F1系列的RTC实际上只有一个计数器功能&#xff0c;如果需要年月日要自己写软件计算 &#xff…

【应用】SpringBoot-自动配置原理

前言 本文简要介绍SpringBoot的自动配置原理。 本文讲述的SpringBoot版本为&#xff1a;3.1.2。 前置知识 在看原理介绍之前&#xff0c;需要知道Import注解的作用&#xff1a; 可以导入Configuration注解的配置类、声明Bean注解的bean方法&#xff1b;可以导入ImportSele…

MySQL——全文检索

不是所有的数据表都支持全文检索 MySQL支持多种底层数据库引擎&#xff0c;但是并非所有的引擎支持全文检索 &#xff0c;目前最常用引擎是是MyISAM和InnoDB&#xff1b;前者支持全文检索&#xff0c;后者不支持。 booolean模式操作符 实验&#xff1a; 表productnotes &…

LVGL9.1移植STM32F103C8T6花屏问题解决

这一次的话算是花了一下午差不多解决了一个问题&#xff0c;具体我是用 stm32f103c8t6(20k RAM, 128k Flash) 移植的LVGL库(屏幕是240x240的st7789, 因为RAM的buf不太够所以缩小了显示面积) 直接切入主题: 如果出现花屏问题&#xff0c; 这个问题出在你自定义编写的lv_set_flu…

Ingress配置优化和追踪

介绍 在传统的业务系统中&#xff0c;应用微服务化后&#xff0c;需要一个统一的入口来将各个服务进行整合&#xff0c;这个入口可以是Nginx、Apache、HAproxy等等。而在K8s中&#xff0c;同样需要一个工具来将应用的各个service整合到统一的入口&#xff0c;这个工具就叫Ingr…

计算机网络 虚拟局域网划分

一、实验内容 1、分别把交换机命名为SWA、SWB 2、划分虚拟局域网 valn &#xff0c;并将端口静态划分到 vlan 中 划分vlan 方法一&#xff1a;在全局模式下划分vlan&#xff0c;在SWA交换机上创建三个vlan&#xff0c;分别为vlan2&#xff0c;vlan3&#xff0c;vlan4。 方…

C++/QT 医院信息管理系统

一、项目介绍 &#xff08;1&#xff09;管理员、居民、医生三个角色登录&#xff1b;居民可注册账号登录&#xff0c;医生由管理员添加&#xff0c;管理员权限最高 &#xff08;2&#xff09;管理员&#xff1a; 模块一&#xff1a;信息管理&#xff08;医生信息管理、医院…