-
大数据ClickHouse进阶(八):ClickHouse的with子句
- 网站名称:大数据ClickHouse进阶(八):ClickHouse的with子句
- 网站分类:技术文章
- 收录时间:2025-08-18 04:50
- 网站地址:
“大数据ClickHouse进阶(八):ClickHouse的with子句” 网站介绍
ClickHouse的with子句
ClickHouse支持with子句以增强语句的表达,例如如下查询:
node1 :) SELECT pow(pow(2,2),3)
┌─pow(pow(2, 2), 3)─┐
│ 64 │
└───────────────────┘
我们可以通过使用with子句进行简化,提高可读性:
node1 :) WITH pow(2,2) AS a SELECT power(a,3)
┌─pow(a, 3)─┐
│ 64 │
└───────────┘
with的使用支持如下四种用法:
一、定义变量
可以通过with定义变量,这些变量在后续的查询子句中可以直接访问。
例如:
node1 :) WITH 10 AS start
SELECT number
FROM system.numbers
WHERE number > start
LIMIT 5
┌─number─┐
│ 11 │
│ 12 │
│ 13 │
│ 14 │
│ 15 │
└────────┘
二、调用函数
可以访问select子句中的列字段,并调用函数做进一步处理,处理之后的数据可以在select子句中继续使用。
例如:
node1 :) WITH SUM(data_uncompressed_bytes) AS bytes
SELECT
database,
formatReadableSize(bytes) AS format
FROM system.columns
GROUP BY database
ORDER BY bytes DESC
┌─database─┬─format─────┐
│ datasets │ 7.40 GiB │
│ system │ 197.27 MiB │
│ default │ 0.00 B │
└──────────┴────────────┘
三、定义子查询
可以使用with定义子查询,例如,借助子查询可以得出各database未压缩数据大小与数据总和大小的比例排名:
node1 :) WITH (
SELECT SUM(data_uncompressed_bytes)
FROM system.columns
) AS total_bytes
SELECT
database,
(SUM(data_uncompressed_bytes) / total_bytes) * 100 AS database_disk_usage
FROM system.columns
GROUP BY database
ORDER BY database_disk_usage DESC
┌─database─┬─database_disk_usage─┐
│ datasets │ 97.31767735000648 │
│ system │ 2.682322649993527 │
│ default │ 0 │
└──────────┴─────────────────────┘
注意:在with中使用子查询时智能返回一行数据,如果结果集大于一行则报错。
四、在子查询中重复使用with
在子查询中可以嵌套使用With子句,例如,在计算出各database未压缩数据大小与数据总和的比例之后,又进行取整函数操作:
node1 :) WITH round(database_disk_usage) AS database_disk_usage_v1
SELECT
database,
database_disk_usage,
database_disk_usage_v1
FROM
(
WITH (
SELECT SUM(data_uncompressed_bytes)
FROM system.columns
) AS total_bytes
SELECT
database,
(SUM(data_uncompressed_bytes) / total_bytes) * 100 AS database_disk_usage
FROM system.columns
GROUP BY database
ORDER BY database_disk_usage DESC
)
┌─database─┬─database_disk_usage─┬─database_disk_usage_v1─┐
│ datasets │ 97.2911778785499 │ 97 │
│ system │ 2.7088221214500954 │ 3 │
│ default │ 0 │ 0 │
└──────────┴─────────────────────┴────────────────────────┘
更多相关网站
- 数据体系建设-数据血缘(1)(数据体系规划)
- Spark+ClickHouse实战企业级数据仓库:ClickHouse常用的数据格式
- MySQL数据一键同步至ClickHouse数据库
- 大数据ClickHouse进阶(一):ClickHouse使用场景和集群安装
- Node.js 连接 ClickHouse 并执行 SQL 的方式
- BI产品工具Tableau使用相关问题汇总
- clickhouse填坑之除数为0完美解决
- ClickHouse学习笔记四ClickHouse基础语法
- 趣头条基于Flink+ClickHouse的实时数据分析平台
- 基于ClickHouse的用户行为大数据架构
- 那些年我们踩过的一些坑之 ClickHouse
- ClickHouse在自助行为分析场景的实践应用
- ClickHouse的应用场景 和使用约束
- ClickHouse学习笔记一ClickHouse入门
- 大数据ClickHouse(三):客户端命令行参数
- ClickHouse 可观测性最佳实践(clickhouse高可用)
- Clickhouse多磁盘存储,实现冷热数据分离
- 快速安装 ClickHouse(快速安装展会桁架出租)
- 最近发表
- 标签列表
-
- mydisktest_v298 (35)
- sql 日期比较 (33)
- document.appendchild (35)
- 头像打包下载 (35)
- acmecadconverter_8.52绿色版 (25)
- 梦幻诛仙表情包 (36)
- java面试宝典2019pdf (26)
- disk++ (30)
- 加密与解密第四版pdf (29)
- iteye (26)
- centos7.4下载 (32)
- intouch2014r2sp1永久授权 (33)
- jdk1.8.0_191下载 (27)
- axure9注册码 (30)
- virtualdrivemaster (26)
- 数据结构c语言版严蔚敏pdf (25)
- 兔兔工程量计算软件下载 (27)
- 代码整洁之道 pdf (26)
- ccproxy破解版 (31)
- aida64模板 (28)
- engine=innodb (33)
- shiro jwt (28)
- segoe ui是什么字体 (27)
- head first java电子版 (32)
- clickhouse中文文档 (28)