使用 lateral view explode(col1)后行数变少了,bug排查

问题复现

查询该表结果为100行

select count(1) as cnt

from (

select distinct a,b,c

from pageAds

)

查询下表条数为90行

select count(1) as cnt

from (

select distinct a,b,c

from pageAds

)

lateral view explode(split(a,',')) adTable as d

思考:第二条语句只比第一个多一个炸裂函数,炸裂函数的作用是将数据炸开变成多行数据,为什么还会条数变少了呢?

经过各种资料查找,数据探索,发现当字段是空时,不会形成新的一行,而是会把这条数据过滤掉

例如有20条a是空,那如果a都没有被分割,那就会生成80条数据,我这个a有被分割,所以生成了90条数据

注意:以后用这个的时候一定要探索好分割字段,当有空的时候提前把空值处理好,例如提前赋默认值

如下

select count(1) as cnt

from (

select distinct coalesce (case when a='' then ','

else a

end ,

',') as a

,b,c

from pageAds

)

lateral view explode(split(a,',')) adTable as d

相关推荐
pengdott5 小时前
Oracle RAC内存融合技术深度解析:集群性能的幕后引擎
数据库·oracle
csudata6 小时前
绿色便携版PostgreSQL发行版重磅发布
数据库·postgresql
阳光九叶草LXGZXJ7 小时前
达梦数据库-学习-48-DmDrs控制台命令(同步之Manager、CPT模块)
linux·运维·数据库·sql·学习
我科绝伦(Huanhuan Zhou)7 小时前
脚本再升级,兼容Oracle 26ai一键安装
数据库·oracle
野生绿箭侠8 小时前
Ncos 2.3.2 版本集成达梦数据库
数据库
仍然.8 小时前
MYSQL--约束
数据库·mysql
乡野码圣9 小时前
【RK3588 Android12】RCU机制
java·jvm·数据库
亓才孓9 小时前
[数据库]应该注意的细节
数据库·sql
m0_5613596710 小时前
掌握Python魔法方法(Magic Methods)
jvm·数据库·python
xxxmine10 小时前
redis学习
数据库·redis·学习