0


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

文章目录

  • 在 clickhouse 中存储嵌套类型的关键字是 Nested, 只支持一级嵌套。数据结构类似于在数据结构类似于在表的单元格里面嵌套“一张表格”,如下图所示:image.png
  • 嵌套类型是列存储,本质上是一个多维数组结构, 可以在嵌套字段上使用数组函数。

创建嵌套类型的表

CREATETABLE mydb.student_grades
(
  ID UInt64,
  Name String,
  CourseScore Nested
  (
    course String,
    score Float64
  ))ENGINE= MergeTree()ORDERBY(ID, Name);

插入读取数据

insertinto mydb.student_grades (ID, Name,`CourseScore.course`,`CourseScore.score`)values(1,'浩轩',['语文','数学'],[95.1,96]),(2,'语轩',['语文','数学'],[94.1,97]);

查询:

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]         │
└───────────────────┘

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

计算每个人的平均分

SELECT t.Name, arrayReduce('avg', t.CourseScore.score)FROM mydb.student_grades as t;#########################
┌─Name─┬─arrayReduce('avg', CourseScore.score)─┐
│ 浩轩 │                                 95.55 │
│ 语轩 │                                 95.55 │
└──────┴───────────────────────────────────────┘
标签: clickhouse

本文转载自: https://blog.csdn.net/qq_42586468/article/details/139080069
版权归原作者 一切如来心秘密 所有, 如有侵权,请联系我们删除。

“Clickhouse 嵌套数据类型总结—— Clickhouse 基础篇(三)”的评论:

还没有评论