clickhouse left join产生的空值或者默认值问题解析
建表语句:
CREATE TABLE default.mt_table ( `date` Date, `id` UInt8, `name` String ) ENGINE = MergeTree(date, (id, name), 8192)
插入数据:
insert into mt_table (date,id,name) values ('2019-05-01',1,'zhangsan'); insert into mt_table (date,id,name) values ('2019-05-02',2,'lisi');
执行sql示例:
select a.* ,b.* from (select * from mt_table where id=1) a left join (select * from mt_table where id=2) b on a.id=b.id ;
结果示例:
┌───────date─┬─id─┬─name─────┬─────b.date─┬─b.id─┬─b.name─┐
│ 2019-05-01 │ 1 │ zhangsan │ 1970-01-01 │ 0 │ │
└────────────┴────┴──────────┴────────────┴──────┴────────┘
可以观察到正常关联的话不会有null值产生:
关联不到的id数值类型默认为0;
关联不到的日期类型默认为1970-01-01;
关联不到的String类型为空 ''
clickhouse常见的三种空值问题以及解决方案
posted on 2022-08-03 15:33 RICH-ATONE 阅读(1905) 评论(0) 编辑 收藏 举报