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

相关推荐
AI人工智能+电脑小能手3 小时前
【大白话说Java面试题 第87题】【Mysql篇】第17题:分布式事务的实现原理?
java·数据库·分布式·mysql·面试
yyuuuzz3 小时前
独立站的技术基础与常见运维问题
大数据·运维·服务器·网络·数据库·aws
键盘上的猫头鹰6 小时前
【MySQL 教程(八)】索引、事务、用户管理、导入导出与分页查询
数据库·python·mysql
Royzst6 小时前
数据库知识点
数据库
雪的季节7 小时前
企业级 Qt 全功能项目
开发语言·数据库·qt
宋浮檀s7 小时前
应急响应——Web漏洞:命令执行+SSRF+弱口令
运维·数据库·sql·网络安全·oracle·应急响应
yurenpai(27届找实习中)8 小时前
redis_点评(21.好友关注——关注、取关功能实现;共同关注功能实现)
数据库·redis·缓存
Rick19938 小时前
索引的排序和分组
数据库·mysql
爱莉希雅&&&8 小时前
zabbix快速搭建和使用
android·linux·数据库·zabbix·监控
JohnYan9 小时前
工作笔记 - PG分组极值
数据库·后端·postgresql