首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >ClickHouse | 查询

ClickHouse | 查询

作者头像
Java小技巧
发布2024-11-23 09:50:32
发布2024-11-23 09:50:32
4530
举报
文章被收录于专栏:Java小技巧Java小技巧

1 ALL 子句

2 ARRAY JOIN

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

3 DISTINCT子句

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

4 FROM子句

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

1.表

2.子查询

3.表函数

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

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

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

5 GROUP BY子句

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” 是 不 指定。

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不能是同一字段

分布式join

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

Broadcast Join 数据广播算子

Shuffer Join 数据重分布算子

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

GLOBAL JOIN

Colocate Join

8 Limit

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

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

n 和 必须是非负整数。m

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

9 Limit by

10 Order by

11 Where prewhere

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

clickhouse提供了自动

.

.

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

.

12 Sample

语法

举例

13 Union all

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

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

14 WITH子句

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-09-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java小技巧 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 ALL 子句
  • 2 ARRAY JOIN
  • 3 DISTINCT子句
  • 4 FROM子句
  • 5 GROUP BY子句
  • 6 HAVING 子句
  • 7 Join
    • 分布式join
      • GLOBAL JOIN
      • Colocate Join
  • 8 Limit
  • 9 Limit by
  • 10 Order by
  • 11 Where prewhere
  • 12 Sample
  • 13 Union all
  • 14 WITH子句
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档