Clickhouse 嵌套数据类型总结—— Clickhouse 基础篇(三)

文章目录

创建嵌套类型的表

sql 复制代码
CREATE TABLE mydb.student_grades
(
  ID UInt64,
  Name String,
  CourseScore Nested
  (
    course String,
    score Float64
  )
) ENGINE = MergeTree()
ORDER BY (ID, Name);

插入读取数据

sql 复制代码
insert into mydb.student_grades (ID, Name, `CourseScore.course`, `CourseScore.score`)
values (1, '浩轩', ['语文', '数学'], [95.1, 96]),
       (2, '语轩', ['语文', '数学'], [94.1, 97]);

查询:

sql 复制代码
SELECT * FROM mydb.student_grades where Name = '浩轩';

####################################################
┌─ID─┬─Name─┬─CourseScore.course─┬─CourseScore.score─┐
│  1 │ 浩轩 │ ['语文','数学']    │ [95.1,96]         │
└────┴──────┴────────────────────┴───────────────────┘

SELECT CourseScore.score FROM mydb.student_grades where Name = '浩轩';
#####################################
┌─CourseScore.score─┐
│ [95.1,96]         │
└───────────────────┘

在嵌套类型上使用数组函数

计算每个人的平均分

sql 复制代码
SELECT t.Name, arrayReduce('avg', t.CourseScore.score) 
FROM mydb.student_grades as t;

#########################
┌─Name─┬─arrayReduce('avg', CourseScore.score)─┐
│ 浩轩 │                                 95.55 │
│ 语轩 │                                 95.55 │
└──────┴───────────────────────────────────────┘
相关推荐
梦想与想象-广州大智汇2 天前
MySQL 同步数据到 ClickHouse 方案对比分析
数据库·mysql·clickhouse
Smile_2542204183 天前
clickhouse日志疯涨问题
linux·运维·服务器·clickhouse
计算机魔术师3 天前
【技术硬核 | 存储】ClickHouse 原理与 Langfuse 存储实践:当 LLM Trace 爆炸时,PG 还扛得住吗?
人工智能·clickhouse·工程实践·sbti·职场焦虑
fire-flyer6 天前
ClickHouse系列(九):慢查询、内存 OOM 与稳定性治理
android·clickhouse
fire-flyer6 天前
ClickHouse系列(十):生产架构与最佳实践总结
clickhouse·架构
fire-flyer6 天前
ClickHouse系列(八):ClickHouse 的 UPDATE / DELETE 正确姿势
大数据·数据库·clickhouse
fire-flyer6 天前
ClickHouse系列(七):Materialized View 与多分辨率 Rollup 设计
大数据·数据库·clickhouse·架构
fire-flyer8 天前
ClickHouse系列(二):MergeTree 家族详解
大数据·数据库·clickhouse
fire-flyer8 天前
ClickHouse系列(四):压缩不是为了省磁盘,而是为了更快的查询
数据库·clickhouse
l1t8 天前
测试clickhouse 26.3的新功能
数据库·clickhouse