使用 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

相关推荐
TechWayfarer13 小时前
离线IP数据库内网部署:场景选型与热更新落地实践
网络·数据库·python·网络协议·tcp/ip
科技牛牛13 小时前
离线IP数据库推荐:风控合规场景怎么选
网络·数据库·tcp/ip·离线ip数据库·.数据安全
不剪发的Tony老师13 小时前
FXDB:一款免费开源的桌面数据库客户端工具
数据库
szccyw013 小时前
如何防止 Laravel 中因动态列名导致的 SQL 注入风险
jvm·数据库·python
zhangchaoxies13 小时前
团队版Navicat专属功能:如何共享数据库架构ER模型_核心机制解析
jvm·数据库·python
2301_7950997413 小时前
HTML5中Object标签定义外部资源容器的备份逻辑
jvm·数据库·python
z44247532613 小时前
CSS如何保证移动端顶部Fixed头部的安全区域
jvm·数据库·python
weixin_4585801213 小时前
golang如何优化反射性能_golang反射性能优化技巧
jvm·数据库·python
步辞13 小时前
CSS如何解决小屏幕上的长单词截断版面
jvm·数据库·python
qq_4609784013 小时前
如何在无向图中找出从任意节点可达的所有节点(连通分量识别)
jvm·数据库·python