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 │
└──────┴───────────────────────────────────────┘
相关推荐
时空无限13 小时前
clickhouse 数据损坏无法启动问题修复
clickhouse
阿演2 天前
我把这个桌面数据库工具又升级了一轮:现在支持 ClickHouse,还能可视化建表和改表了
数据库·clickhouse·ai编程·数据库连接工具
海南java第二人2 天前
ClickHouse 稀疏索引深度解析:为什么 OLAP 数据库不用 B-Tree?
数据库·clickhouse
海南java第二人3 天前
ClickHouse 主键索引详解:不是唯一标识,而是排序规则
clickhouse
海南java第二人4 天前
ClickHouse 列式存储深度解析:优点、缺点与选型实战
数据库·clickhouse
努力攻坚操作系统4 天前
ClickHouse虚拟列
clickhouse
海南java第二人4 天前
ClickHouse 备份与恢复完全指南:从物理拷贝到内置备份的实战选择
clickhouse·备份与恢复
海南java第二人5 天前
ClickHouse Sharding 分片与 Partitioning 分区:区别、联系与生产实践
clickhouse·分区·分片
狼与自由7 天前
mysql到clickhouse
数据库·mysql·clickhouse
云天AI实战派7 天前
跨境出海全流程实战:用 Medusa + Hyperswitch + ClickHouse 搭建落地页、支付订阅、客服工单与多语言 SEO 闭环
大数据·人工智能·clickhouse·独立开发·跨境出海·medusa