首页 > 其他分享 >clickhouse学习笔记

clickhouse学习笔记

时间:2023-09-19 18:47:06浏览次数:29  
标签:arr func -- 元素 笔记 学习 clickhouse 数组 SELECT

一、query相关

1. 展示正在处理的请求列表

show processlist

2. 杀掉正在处理的查询

KILL QUERY WHERE query_id='2-857d-4a57-9ee0-327da5d60a90'

  

二、修改名称

-- 1. 重命名
RENAME DATABASE|TABLE|DICTIONARY name TO new_name
-- 2. 交换2个表的名称
EXCHANGE TABLES [db0.]table_A AND [db1.]table_B

 

三、数组函数

-- 1.检测输入的数组是否空
empty([x])
-- 2.检测输入的数组是否非空
notEmpty([x])
-- 3.获取数组长度
length([x])
-- 4.返回一个以step作为增量步长的从start到end - 1的整形数字数组
range(start, end, step)
-- 5.合并参数中传递的所有数组
SELECT arrayConcat([1, 2], [3, 4], [5, 6]) AS res
-- 6.根据索引查找元素
arrayElement(arr,n),运算符arr[n]
-- 7.检查’arr’数组是否具有’elem’元素
has(arr,elem)
-- 8.检查一个数组是否是另一个数组的子集
hasAll(set, subset)
-- 9.检查两个数组是否存在交集
hasAny(array1, array2)
-- 10.检查 array2 的所有元素是否以相同的顺序出现在 array1 中。当且仅当 array1 = prefix + array2 + suffix时,该函数将返回 1。
hasSubstr(array1, array2)
-- 11.返回数组中第一个’x’元素的索引(从1开始),如果’x’元素不存在在数组中,则返回0
indexOf(arr,x)
-- 12.返回结果为非零值的数量
arrayCount(func, arr1)
-- 13.返回数组中等于x的元素的个数
countEqual(arr,x)
-- 14.从数组中删除最后一项
arrayPopBack(array)
-- 15.从数组中删除第一项
arrayPopFront(array)
-- 16.添加一个元素到数组的末尾
arrayPushBack(array, single_value)
-- 17.将一个元素添加到数组的开头
arrayPushFront(array, single_value)
--  18.返回一个子数组,包含从指定位置的指定长度的元素
SELECT arraySlice([1, 2, NULL, 4, 5], 2, 3) AS res
-- 19.以升序对arr数组的元素进行排序。如果指定了func函数,则排序顺序由func函数的调用结果决定
SELECT arraySort([1, 3, 3, 0]);
SELECT arraySort((x) -> -x, [1, 2, 3]) as res;
SELECT arraySort((x, y) -> y, ['hello', 'world'], [2, 1]) as res;
-- 20.以降序对arr数组的元素进行排序。如果指定了func函数,则排序顺序由func函数的调用结果决定
SELECT arrayReverseSort([1, 3, 3, 0]);
-- 21.计算数组中不同元素的数量
arrayUniq(arr, …)
-- 22.计算相邻数组元素之间的差异
SELECT arrayDifference([1, 2, 3, 4]);
-- 23.对数组去重
SELECT arrayDistinct([1, 2, 2, 3, 1]);
-- 24.返回所有数组元素的交集
SELECT arrayIntersect([1, 2], [1, 3], [2, 3]);
-- 25.将聚合函数应用于数组元素并返回其结果
SELECT arrayReduce('max', [1, 2, 3]);
-- 26.将嵌套的数组展平
SELECT flatten([[[1]], [[2], [3]]]);
-- 27.从数组中删除连续的重复元素。结果值的顺序由源数组中的顺序决定。
SELECT arrayCompact([1, 1, nan, nan, 2, 3, 3, 3]);
-- 28.将多个数组组合成一个数组。结果数组包含按列出的参数顺序分组为元组的源数组的相应元素
SELECT arrayZip(['a', 'b', 'c'], [5, 2, 1]);
-- 29.将从 func 函数的原始应用中获得的数组返回给 arr 数组中的每个元素
SELECT arrayMap(x -> (x + 2), [1, 2, 3]) as res;
-- 30.返回一个仅包含 arr1 中的元素的数组,其中 func 返回的值不是 0
SELECT arrayFilter(x -> x LIKE '%World%', ['Hello', 'abc World']) AS res
-- 31.从第一个元素到最后一个元素扫描arr1,如果func返回0,则用arr1[i - 1]替换arr1[i]
SELECT arrayFill(x -> not isNull(x), [1, null, 3, 11, 12, null, null, 5, 6, 14, null, null]) AS res
-- 32.将 arr1 拆分为多个数组。当 func 返回 0 以外的值时,数组将在元素的左侧拆分
SELECT arraySplit((x, y) -> y, [1, 2, 3, 4, 5], [1, 0, 0, 1, 0]) AS res
-- 33.如果 arr 中至少有一个元素 func 返回 0 以外的值,则返回1
arrayExists([func, arr1)
-- 34.如果 func 为 arr 中的所有元素返回 0 以外的值,则返回 1
arrayAll([func, arr1)
-- 35.’arrayJoin’函数获取每一行并将他们展开到多行

 

四、条件函数

-- 1. if
SELECT if(1, plus(2, 2), plus(2, 6))
-- 2. multiIf
multiIf(cond_1, then_1, cond_2, then_2, ..., else)
-- 3. 三元运算
cond ? then : else

  

五、聚合函数

-- 1.返回指定列中近似最常见值的数组
SELECT topK(3)(AirlineID) AS res
FROM ontime
-- 2.

  

 

 

 

 

 

 

 

 

 

  

标签:arr,func,--,元素,笔记,学习,clickhouse,数组,SELECT
From: https://www.cnblogs.com/mango1997/p/17715486.html

相关文章

  • Vue源码学习(七):合并生命周期(混入Vue.Mixin)
    好家伙, 1.使用场景现在来,来想一下,作为一个使用Vue的开发者,假设现在我们要使用created(),我们会如何使用1.1. .vue文件中使用<template><div><h1>{{message}}</h1></div></template><script>exportdefault{created(){this.message='......
  • openGauss学习笔记-74 openGauss 数据库管理-创建和管理视图
    openGauss学习笔记-74openGauss数据库管理-创建和管理视图74.1背景信息当用户对数据库中的一张或者多张表的某些字段的组合感兴趣,而又不想每次键入这些查询时,用户就可以定义一个视图,以便解决这个问题。视图与基本表不同,不是物理上实际存在的,是一个虚表。数据库中仅存放视图的......
  • 其他笔记需要学习
    gmockhttp://blog.divebomb.org/2011/07/my-first-c-cmake-googletest-and-googlemock/http://blog.divebomb.org/2011/07/my-first-c-cmake-googletest-and-googlemock/https://qastack.cn/programming/7208070/googletest-how-to-skip-a-testhttps://www.onitroad.com/jc/......
  • clickhouse-backup 备份恢复测试
    一、安装配置1.下载https://github.com/AlexAkulov/clickhouse-backup/releases2.安装[root@backup-db~]#rpm-ivhclickhouse-backup-1.3.1-1.x86_64.rpmPreparing...#################################[100%]Updating/installing...1:clickhouse-backup-1.3.1-1#####......
  • Asyncio 协程异步笔记
    协程&asyncio&异步1.协程(coroutine)协程不是计算机提供,而是程序员人为创造。协程(coroutine),也可以被称为微线程,是一种用户态内的上下文切换技术。简而言之,其实就是通过一个线程实现代码块互相切换运行。例如:deffunc1():print(1)...print(2)deffu......
  • 联想笔记本电脑,拓展多屏幕,无法找到其他显示器
    1、前言360安全卫士检测提示某文件为病毒文件,于是加进了隔离区。电脑重启后,分辨率突然更改,拓展屏幕也不能用了 严重怀疑驱动破坏,或者显卡硬件故障。2、驱动修复  【显示适配器】,驱动显示“黄三角”标识。选中右键卸载,然后从官网重新下载驱动安装即可我的是联系y900......
  • pytorch学习了解
    importtorchvisionfrommodel1testimport*fromtorch.utils.dataimportDataLoaderfromtorch.utils.tensorboardimportSummaryWritertrian_data=torchvision.datasets.CIFAR10('./datasets',train=True,transform=torchvision.transforms.ToTensor())t......
  • sass 系统性学习
    学习随笔(Sass)该随笔是根据b站小满zs的Vue3+vite+Ts+pinia+实战+源码+electron的视频学习写的,Vue3+vite+Ts+pinia+实战+源码+electronbem格式类名中--代表,这个类的样式一样,仅颜色不一样。类名中__代表,这个类是上个类的子类。......
  • 《动手学深度学习 Pytorch版》 7.2 使用块的网络(VGG)
    importtorchfromtorchimportnnfromd2limporttorchasd2l7.2.1VGG块AlexNet没有提供一个通用的模板来指导后续的研究人员设计新的网络,如今研究人员转向了块的角度思考问题。通过使用循环和子程序,可以很容易地在任何现代深度学习框架的代码中实现这些重复的架构。......
  • Java学习随笔——1
    Java学习拉开学习Java的第一篇,本篇内容来自遇见狂神说,感谢狂神老师的细节无私,干货满满的课程内容什么是JavaJava是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态......