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 │
└──────┴───────────────────────────────────────┘
相关推荐
=蜗牛=12 小时前
Docker 简单部署 ClickHouse 超详细图文步骤
clickhouse·docker·容器·部署·图文
狼与自由1 天前
clickhouse log引擎
clickhouse
狼与自由2 天前
clickhouse AggregatingMergeTree
clickhouse
狼与自由3 天前
clickhouse ReplacingMergeTree
android·clickhouse
狼与自由3 天前
clickhouse中的分区
clickhouse
狼与自由3 天前
clickhouse 查询
clickhouse
狼与自由4 天前
clickhouse mergeTree
clickhouse
狼与自由4 天前
clickhouse建表
clickhouse
简简单单就是我_hehe4 天前
clickhouse内置函数和关键词总结
clickhouse
狼与自由4 天前
clickhouse引擎
clickhouse·c#·linq