HIVE SQL 根据主键去重并实现其余字段分组聚合

相同个人id下所有字段按时间顺序补位,取首个不为空值
在这里插入图片描述

--数据建表
drop table if exists db.tb_name;
create table if not exists db.tb_name
( id string,name string,tele string,email string,`date` string
)
;
insert overwrite table db.tb_name
values 
("32001","张三","23456789",null,"2023-07-18")
,("32001",null,null,"23456789@163.com","2023-07-19")
,("32002","李四",null,"23456876@qq.com","2023-07-18")
,("32003","王二",null,null,"2023-07-18")
,("32003",null,"9876789",null,"2023-06-18")
,("32003",null,null,"9876789@gmail.com","2023-07-18")
,("32004","刘五","987456798",null,"2023-07-18")
,("32004","刘七","1987456798",null,"2023-07-20")
;
--distribute by 分区排序:类似MR中partition,进行分区,结合sort by使用drop table if exists db.tb_name_new;
create table if not exists db.tb_name_new as
select id ,collect_list(`name`)[0] as `name`,collect_list(`tele`)[0] as `tele`,collect_list(`email`)[0] as `email`,collect_list(`date`)[0] as `date`
from 
(
select id,name,tele,email,`date`
from 
db.tb_name
distribute by id 
sort by id,`date` desc
) t 
group by id
;

*注意:此处是取的首个不为空(即不为null)的字段,所以在实际使用过程中应提前将空字符串转为null值。

--剔除字符串中的不可见字符,若该字段中均为不可见字符或该字段为空字符串,则转为空
case when length(regexp_replace(col_name,'[\\x00-\\x08\\x0B-\\x0C\\x0E-\\x1F]+|\\s+',''))>0 then regexp_replace(col_name,'[\\x00-\\x08\\x0B-\\x0C\\x0E-\\x1F]+|\\s+','')else null end as new_col_name

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/28805.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

0基础学习VR全景平台篇 第66篇:VR直播-如何管理VR直播活动

一、电脑端管理 已创建好的VR直播活动可以在【管理后台】-【作品管理】-【VR直播】列表下查看到。 1、点击活动标题可以直接进入电脑端的播放页面,点击“编辑”按钮可以进入活动的设置界面。 2、电脑端播放页 该链接地址是可以自适应电脑端和手机端的&#xff0c…

视频弹题、视频答题来实现视频防录屏和防挂机

视频弹题、视频答题来实现视频防录屏和防挂机 1.视频播放到某个时间点,弹出问题卡,学员只有正确回答课件视频中弹出的问题之后才能继续观看视频。 2.通过互动问答的方式,不仅有利于巩固前边学习的知识点,评估学员的学习效果&#…

3ds max高级教程:创建带有骨骼动画的机器人模型

推荐: NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 然而,下面我们示例机器人腿的第一个版本不是很现实,因为它会像没有肌肉的骨骼结构一样坍塌。在第二个版本中,我们将添加一些机器人“肌肉”,第三个版本将包括…

Web安全基础

Web安全基础 一、Web应用安全概述1.1、什么是Web应用安全?1.2、WEB应用安全的兴起1.3、常见web应用1.3.1、常见Web应用—前后台 1.4、Web应用安全与传统安全的区别 二、Web应用的基本架构2.1、Web应用的基本架构2.2、Web服务的提供者——Web中间件2.3、简单的Web服务…

ios oc button 设置

Button调整内部的子控件的位置

使用IDEA社区版创建SpringBoot项目

文章目录 1.关于IDEA社区版的版本2.下载Spring Boot Helper3.创建项目4.配置Maven国内源4.1找不到settings.xml的情况4.2找得到settings.xml的情况 4.3删除repository目录下的所有文件和目录5.加载项目6.解决org.springframework.boot:spring-boot-starter-parent:pom:2.7.13.R…

Solus Linux 4.4版本发布

导读Solus Linux近日更新到4.4版本,作为这个受爱好者欢迎的Linux发行版的最新增量更新,团队仍在努力实现其基于Serpent OS和对Linux发行版的其他重大基本变化的纳入。 Solus 4.4带有各种各样的更新包,还有一些其他的改变,比如现在…

【云原生】K8S单节点搭建

Kubernetes Kubernetes基础概念架构1、基础环境2、安装kubelet、kubeadm、kubectl 2、使用kubeadm引导集群1、下载各个机器需要的镜像2、初始化主节点 Kubernetes核心实战Pod Kubernetes基础概念 kubernetes具有以下特性: ● 服务发现和负载均衡 Kubernetes 可以使…

【雕爷学编程】Arduino动手做(22)——8X8 LED点阵MAX7219屏6

37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这…

OA系统增加会议

目录 一.前期准备工作 A.建立数据库会议信息类 B.建立增加会议的jsp界面 1.注意事项 2.存储路径图片展示 C.构建JS 1.构建addmetting.js 2.导入Layui的formSelects(为了下拉框选择值做准备) 二.实现绑定多功能下拉框dao方法 A.查询所有用户 绑…

arduinoIDE2.1.1最新版升级开发板(esp32-2.0.3升级2.0.10)方法总结(esp8266升级通用)

一、arduinoIDE 升级最新版 2.1.1方法 1.1.通过IDE2.x直接升级(推荐,速度还可以) 1.2.官网下载安装包覆盖升级(地址https://www.arduino.cc/en/software) 1.3 ESP8266升级方法雷同可参考(原理一样,最新好像是3.1.2) https://github.com/esp8266/Arduino/releases http…

应对突发流量,如何快速为自建 K8s 添加云上弹性能力

作者:庄宇 以 Kubernetes 为代表的容器技术带来的是一种应用交付模式的变革,其正迅速成为全世界数据中心的统一 API。 为了保证业务持续稳定、用户访问不中断,高可用、高弹性等能力是应用架构设计不变的追求,多集群架构天然具备…