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

相关推荐
似水流年QC4 分钟前
LangChain 入门与实战
服务器·数据库·langchain
周厉9 分钟前
酒店PMS系统设计:房型房价管理与动态价格优先级实现(Java/MySQL)
java·数据库·pms酒店系统
howard200510 分钟前
任务 2-3 图形化管理工具Navicat
数据库·mysql·navicat
一碗白开水一15 分钟前
Day 5 · 弹性 | 微观
java·前端·数据库
迪飞特科技16 分钟前
大模型接入业务系统:API、本地部署、RAG、智能体四种路线怎么选
java·数据库·人工智能·知识图谱·deepseek·本地化大模型
星轨zb19 分钟前
[专题5]支付发放物品的一致性保障:事务、幂等与状态流转
数据库·后端·mongodb·支付架构学习
保密资质顾问说25 分钟前
保密培训三大误区纠正:从形式主义到持续合规
数据库
泡海椒29 分钟前
JQuick-SQL GROUP BY 聚合:COUNT、SUM、AVG、MIN 与 MAX
数据库·sql
小冯不疯34 分钟前
销售订单同步实战:从聚水潭到金蝶云星空的线上出库单落地
大数据·数据库