ClickHouse | 查询

news2024/11/18 20:20:16

1 ALL 子句   

04bd975f3462d2cdd4161e6b9166eeb6.png

2 ARRAY JOIN    

f70a6a6fe1fa8ff929f927ab4e4dbdd7.png

46d4699154a0d0eb24e7f8115962c43a.png    

使用别名 :在使用时可以为数组指定别名,数组元素可以通过此别名访问,但数组本身则通过原始名称访问

0593c8933ee95d83c2ca9f0f30c887d2.png

3 DISTINCT子句  

DISTINCT不支持当包含有数组的列    

d71ee402b685554a57d369088b054fe8.png

4 FROM子句  

FROM 子句指定从以下数据源中读取数据:

1.表

2.子查询 

3.表函数

JOIN 和 ARRAY JOIN 子句也可以用来扩展 的功能FROM

子查询是另一个 可以指定在 后的括号内的查询。

FROM 子句可以包含多个数据源,用逗号分隔,这相当于在他们身上执行 CROSS JOIN

5 GROUP BY子句    

3e512928eacf379d2ad96345d4d0c1c7.png

6 HAVING 子句  

允许过滤由 GROUP BY 生成的聚合结果. 它类似于 WHERE ,但不同的是 在聚合之前执行,而 之后进行。

可以从 生成的聚合结果中通过他们的别名来执行 子句。或者 子句可以筛选查询结果中未返回的其他聚合的结果。

限制HAVING如果不执行聚合则无法使用

7 Join    

支持的联接类型

所有标准 SQL JOIN 支持类型:

INNER JOIN,只返回匹配的行。

LEFT OUTER JOIN,除了匹配的行之外,还返回左表中的非匹配行。

RIGHT OUTER JOIN,除了匹配的行之外,还返回右表中的非匹配行。

FULL OUTER JOIN,除了匹配的行之外,还会返回两个表中的非匹配行。

CROSS JOIN,产生整个表的笛卡尔积, “join keys” 是 不 指定。

dd5550b1158f57046433ae46d0e0ebe2.png

06d3696b1888987fd6061a3fc7fb7ced.png

semi: 类似于mysql的exists、in查询

anti :类似于mysql的not exists、not in查询

ASOF 是一种模糊连接,允许在连接键之后追加定义一个模糊连接的匹配条件asof_column

ASOF会先以 left.key = right.key 进行连接匹配,然后根据AND 后面的 closest_match_cond(也就是这里的a.time >= b.time)过滤出最符合此条件的第一行连接匹配的数据。

对 asof_colum 字段的使用有3点需要注意:    

必须包含一个有序的序列

asof_column 必须Int, UInt, Float, Date, DateTime, Decimal.

asof_column不能是数据表内的唯一字段,也就是说连接键(JOIN KEY)和asof_column不能是同一字段

4eb905223d058d97057482efb90aaf19.png

034318b735812418ae023be421a0e7db.png

 分布式join  

ClicHouse分布式join通常涉及到左右表为分布式表,分布式执行过程中需要将数据在节点间进行交换,将数据在节点间交换的动作在分布式执行计划中称为数据的流动streaming算子,ClickHouse支持的streaming算子有如下三种:

Broadcast Join 数据广播算子

Shuffer Join 数据重分布算子    

Colocate Join 数据存储在本地不需要进行分布式交换

GLOBAL JOIN  

717cfda4167f34d57f824ef7e1573835.png

4f2f11cbba4048f33a0e5442a8791797.png

0d0e0dfd4e11c92c0d4b1b3f74977fb0.png    

a7d2c69984e2a328865b82bff110e088.png

Colocate Join  

75781028f6a8f022d462da61006f77b6.png

1eb7cf92e2c203b6741005fbdc16c242.png    

8e333c0ee210859925ecde201fce1a34.png

223887eb941b79c58cd6bdbef4d0d66c.png58f9cb6fafc2b4f1305d24a83bca4ef4.png

8 Limit  

LIMIT m 允许选择结果中起始的 行。m

LIMIT n, m 允许选择个 从跳过第一个结果后的m 行。与 语法是等效的。mnLIMIT m OFFSET n

n 和 必须是非负整数。m

如果没有 ORDER BY 子句显式排序结果,结果的行选择可能是任意的和非确定性的    

9192155f56f80dbd67a5e89d5e8e862a.png

9 Limit by  

c8e211b112f1c2082020a49b12cc1b06.png

94d0b616d1001c77102be1ad66508bbf.png    

10 Order by  

82087b9f9baf3e504e495a995ef03bcc.png

11 Where prewhere  

.PREWHERE与WHERE不同之处在于:使用PREWHERE时,首先只会去PREWHERE指定的列字段数据,用于数据过滤的条件判断。在数据过滤之后再读取SELECT声明的列字段以补全其余属性。所以在一些场合下,PREWHERE相比WHERE而言,处理的数据更少,性能更高。

clickhouse提供了自动

.          

.          

化优化的功能,会在条件合适的情况下将where替换为prewhere。默认已经开启了此参数

.          

33858c87adf57f5e554d8117f16ba43b.png

12 Sample  

语法

f78dc50cbe85e93f960983064f329da3.png

ee296dca5e03444eefd0c315e13249a3.png

举例

38eaad5a1a1c873bf96dc8f996b8e3d6.png

a74c1f4a0b18dc703095e57ab608fdf0.png

13 Union all  

dd92bb5a27899609f8e4d572aa06fed8.png

结果列通过它们的索引进行匹配(在内部的顺序 ).如果列名称不匹配,则从第一个查询中获取最终结果的名称

对联合执行类型转换。例如,如果合并的两个查询具有相同的字段与非- 和 从兼容类型的类型,由此产生的 有一个 类型字段

14 WITH子句  

ef2588926d4b9d210e7c41d4a8b692e0.png    

55ad940383eb008ac153eb81f2112aeb.png 

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

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

相关文章

建筑资质应该怎么选?

建筑资质是建筑企业承接工程项目的必备条件,它不仅关系到企业的市场竞争力,还直接影响到企业的经营效益。因此,选择适合自己企业的建筑资质至关重要。以下是一些选择建筑资质时需要考虑的关键因素: 1. 明确企业定位 首先&#x…

金融教育宣传月 | 平安养老险百色中心支公司开展金融知识“消保县域行”宣传活动

9月22日,平安养老险百色中心支公司积极落实国家金融监督管理总局关于开展金融教育宣传月活动的相关要求,联合平安人寿百色中心支公司共同组成了平安志愿者小队,走进百色市四塘镇百兰村开展了一场别开生面的金融消费者权益保护宣传活动。此次活…

如何给你的项目添加测试覆盖率徽章

看完我的测试教程之后,想必大家都能写出一个测试覆盖率极高的小项目了。测试覆盖率既然这么高,不秀一秀岂不是白瞎了,下面我们就来通过第三方服务来给你的项目加上测试覆盖率徽章,涉及到的内容有yaml配置,githubAction…

Vue下载pubsub-js中错误问题解决

错误: 解决方法: 执行: npm config set registry https://registry.npm.taobao.org我执行以上方法后安装成功

关于北斗卫星导航系统,你都了解多少?

北斗卫星导航系统(简称“北斗系统”), 英文全称是:Beidou Navigation Satellite System(简称:BDS), 研发 的 初衷 是中国着眼于国家安全和经济社会发展需要,选择自主研发…

Java类的生命周期-初始化阶段

Java类的生命周期-初始化阶段 前两篇讲述了类生命周期的加载阶段和连接阶段,那么本篇我们来讲最为重要的初始化阶段,借助字节码文件与大厂面试题更好的理解类的初始化 头篇提到,类的生命周期可疑将他分为五个阶段,本篇要讲述的就是…

RIP路由(已被淘汰)

一、rip 路由原理 RIP(Routing Information Protocol,路由信息协议)早期的动态路由协议,被广泛应用于TCP/IP网络中,尤其是在中小型网络中。基于距离矢量(Distance-Vector)算法来计算到达目的网络…

农场小程序带你走进生态农产品的世界

在快节奏的现代生活中,人们对食品安全的关注日益增强,对环境、健康农产品的需求也愈发迫切。然而,传统农产品市场往往信息不透明,消费者难以直接了解农产品的生长环境和生产过程,导致信任缺失。而农场小程序的出现&…

工程安全监测分析模型与智能算法模型方案

工程安全监测分析模型与智能算法模型 构建大坝安全监测智能分析模型,以大坝立体智能感知体系为依托,获取大坝变形、渗流渗压、环境变量等实时监测数据,作为模型输入,实现监测数据自动预处理、特征提取、误差分析、变化趋势分析等…

大模型增量训练--基于transformer制作一个大模型聊天机器人

针对夸夸闲聊数据集,利用UniLM模型进行模型训练及测试,更深入地了解预训练语言模型的使用方法,完成一个生成式闲聊机器人任务。 项目主要结构如下: data 存放数据的文件夹 dirty_word.txt 敏感词数据douban_kuakua_qa.txt 原始语…

Qt——如何创建一个项目

前言 本文主要通过实操带领大家来实现基础文件的操作,主要包括文件的打开,读取,写入,当然文件读写我们可以有几种不同的方式来进行操作,分别是文件流,字节流来进行的操作这里就需要两个类分别是文件流&…

迈威通信闪耀工博会,以创新科技赋能工业自动化

昨日,在圆满落幕的第24届中国国际工业博览会上,迈威通信作为工业自动化与智慧化领域的先行者,以“创新打造新质通信,赋能工业数字化”为主题精彩亮相,向全球业界展示了我们在工业自动化领域的最新成果与创新技术。此次…

elementUI表格中某个字段(state)使用计算属性进行转换为对应中文显示

代码案例&#xff1a; <template><el-table:data"tableData"style"width: 100%"><el-table-columnprop"date"label"日期"width"180"/><el-table-columnprop"name"label"姓名"wid…

count(1),count(*)与 count(‘列名‘) 的区别

文章目录 COUNT(expr)性能对比count(*) VS count(1)count(*) VS count(列名) count(*)会走索引吗MyISAM count优化InnoDB如何处理count(*)总结 参考官方文档&#xff1a; https://dev.mysql.com/doc/refman/8.4/en/aggregate-functions.html#function_count COUNT(expr) coun…

叶国富“推翻”马云新零售,零售新王此刻登基?

63亿入主永辉超市&#xff0c;拿到29.4%股份&#xff0c;坐上永辉超市第一大股东的宝座&#xff0c;名创优品创始人叶国富&#xff0c;成为了新科“零售之王”。 很是霸气外漏。 有投资者表示费解&#xff0c;不明白为何此时入局超市行业&#xff0c;叶国富当即召开电话会议&…

数据结构:树的定义及其性质

树的定义 树是一种重要的非线性数据结构&#xff0c;树作为一种逻辑结构&#xff0c;同时也是一种分层结构。具有以下两个特点&#xff1a; 1.树的根结点没有前驱&#xff0c;除根结点意外的节点只有一个前驱 2.树中所有结点都可以有0个或多个后继 树结构在多个领域都有广泛…

JVM相关的命令汇总

一、简介 虽然目前市场上有很多成熟的 JVM 可视化监控分析工具&#xff0c;但是所有的工具其实都依赖于 JDK 的接口和底层相关的命令&#xff0c;了解这些命令的使用对于在紧急情况下排查 JVM 相关的线上故障&#xff0c;会有更加直观的帮助。 下面一起来看看 JVM 常用的命令…

ARM硬件知识补充

一、硬件知识 1.三极管 三极管定义&#xff1a;全称应为半导体三极管&#xff0c;也被称为双极型晶体管或晶体三极管。 主要功能&#xff1a;是将微弱的电信号放大成幅度值较大的电信号&#xff0c;同时也被用作无触点开关。 分类&#xff1a;分为NPN型和PNP型两种类型。 …

GNSS定位中自适应调整电离层延迟参数过程噪声的方法

文章目录 前言一、非差非组合PPP模型二、电离层功率谱密度计算三、具体实现方法3.1 不平滑3.2 三阶多项式平滑 参考文献 前言 GNSS定位中不少技术手段如PPP和长基线RTK需要将电离层延迟作为参数估计&#xff0c;电离层延迟的变化通常被描述为随机游走过程&#xff0c;而功率谱密…

three.js 通过着色器实现热力图效果

three.js 通过着色器实现热力图效果 在线预览 https://threehub.cn/#/codeMirror?navigationThreeJS&classifyshader&idheatmapShader 在 https://threehub.cn 中还有很多案例 <!doctype html> <html lang"en"> <head> <meta charse…