大数据-hive函数与mysql函数的辨析及练习-将多行聚合成一行

目录

1. 🥙collect_list: 聚合-不去重

2. 🥙collect_set(col): 聚合-去重

3. 🥙mysql的聚合函数-group_concat

4. leetcode练习题


1. 🥙collect_list: 聚合-不去重

将组内的元素收集成数组 不会去重

2. 🥙collect_set(col): 聚合-去重

函数只接受基本数据类型,它的主要作用是将某字段的值进行去重汇总,产生 Array 类型字段。

//创建一张实验用表,存放用户每天点播视频的记录
create table t_visit_video (username string,video_name string
) partitioned by (day string)
row format delimited fields terminated by ',';//创建visit.txt数据文件
张三,大唐双龙传
李四,天下无贼
张三,神探狄仁杰
李四,霸王别姬
李四,霸王别姬
王五,机器人总动员
王五,放牛班的春天
王五,盗梦空间//导入数据
load data local inpath '/opt/testDemo/visit.txt' into table t_visit_video partition (day='20180516');

 1)按用户分组,取出每个用户每天看过的所有视频的名字(不去重)

select username,collect_list(video_name)
from t_visit_video
group by username;

结果:

2)按用户2)分组,取出每个用户每天看过的所有视频的名字(去重)

select username,collect_set(video_name)
from t_visit_video
group by username;

结果:

3. 🥙mysql的聚合函数-group_concat

GROUP_CONCAT([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator ‘分隔符’])
将结果集中的多行结果连接成一个字符串-- group_concat对于收集的字段只能是string,varchar,char类型  
--当不指定分隔符的时候,默认使用 ','
//创建一张实验用表,存放用户每天点播视频的记录
create table t_visit_video (
username varchar(20),
video_name varchar(20)
);//插入数据
insert into t_visit_video values
('张三','大唐双龙传'),
('李四','天下无贼'),
('张三','神探狄仁杰'),
('李四','霸王别姬'),
('李四','霸王别姬'),
('王五','机器人总动员'),
('王五','放牛班的春天'),
('王五','盗梦空间');

3)按用户分组,取出每个用户每天看过的所有视频的名字(不去重)

select username,group_concat(video_name)
from t_visit_video
group by username;

结果:

 4)按用户分组,取出每个用户每天看过的所有视频的名字(去重)

select username,group_concat(distinct video_name)
from t_visit_video
group by username;

5)按用户分组,取出每个用户每天看过的所有视频的名字(去重,用;分割视频名字)

select username,group_concat(distinct video_name separator ';')
from t_visit_video
group by username;

结果:

6)按用户分组,取出每个用户每天看过的所有视频的名字(去重,用;分割视频名字,并将视频名字按照字典顺序降序排序) 

select username,group_concat(distinct video_name order by video_name desc separator ';')
from t_visit_video
group by username;

结果:

4. leetcode练习题

leetcode 1484:按日期分组销售产品

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

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

相关文章

mac 上 ssh: connect to host localhost port 22: Connection refused

1。 问题 在搭建hadoop环境的时候 发现ssh localhost 在报错 2. 解决 打开系统设置 -> 共享 -> -> 在左边服务中选择 远程登录 注意红框这些选项慎重选择!!! 修改后,在终端再次 ssh localhost 发现登录成功了 如果…

科大讯飞星火大模型接入API js 部分 接口 安装注意事项

下载以下链接例子运行程序 https://xfyun-doc.xfyun.cn/static%2F16968175055332330%2Fspark_js_demo.zip 官网给的说明 准备 1.在demo中填写APPID、APISecret、APIKey,可到控制台-我的应用-大模型页面获取 2.安装nodejs 本地运行 1.打开cmd,进入dem…

QT上位机开发(权限管理)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 如果只是简单的工具软件,其实是没有权限管理这么一说的。比如说,串口工具、485工具之类的软件,其实根本不存在所…

MOOSE相关滤波跟踪算法(个人学习笔记)

MOOSE 论文标题 “Visual Object Tracking using Adaptive Correlation Filters” 原文地址 用滤波器对目标外观进行建模,并通过卷积操作来执行跟踪。 参考阅读: 目标跟踪经典算法——MOSSE(Minimum Output Sum Square Error&#xff09…

聊天机器人之接入智能回复(四)

智能回复实现思路 目前市场上有许多大语言模型,他能帮助我们更好的解决问题或者陪伴我们聊天。最先兴起的就是OpenAI的ChatGPT,但是我们国内使用不太方便。所以这里我使用咱们国内的平台做一个简单展示。 首先这里咱们使用的是讯飞星火认知大模型&…

Bean作用域及生命周期

关于Bean对象,在将其存储到spring中以后,在使用或读取该Bean对象时,如果该对象是公有的,难免就会出现被一方修改,从而影响另外一方读取到的对象准确性的情况。因此了解Bean的作用域和生命周期就是十分必要的了。 首先…

Fedora Linux 中安装 nginx

Fedora 35 中安装 nginx 的方法非常简单。 运行下面的命令: sudo dnf install nginx 在提示你需要确认的地方,输入 y 后回车即可。 开机自动启动 如果你希望在你的操作系统重启的时候自动启动 nginx,请输入下面的命令: syst…

【昕宝爸爸小模块】如何让Java的线程池顺序执行任务

➡️博客首页 https://blog.csdn.net/Java_Yangxiaoyuan 欢迎优秀的你👍点赞、🗂️收藏、加❤️关注哦。 本文章CSDN首发,欢迎转载,要注明出处哦! 先感谢优秀的你能认真的看完本文&…

文本翻译GUI程序,实现简单的英汉互译

项目地址:mendianyu/txtTranslate: 文本翻译GUI程序,实现简单的英汉互译 (github.com) 文本翻译GUI程序,实现简单的英汉互译 项目结构 三个java文件加一个pom文件 项目运行效果 语言可选择en(英语) zh(汉语) auto(自动识别,仅源语…

序章 熟悉战场篇—了解vue的基本操作

了解vue 的基本目录: dist 是打包后存放的目录(后续可以改)node_modules 是依赖包public 是静态index页面src 是存放文件的目录assets 是存放静态资源的目录components 是存放组件的目录views 是存放页面文件的目录(没有views 自己新建一个)A…

使用FreeBASIC设计8051单片机汇编编译器

在STC论坛上看到有人用C语言实现8051汇编编译器(源码),好奇下,试着用FB写了一下。 基本原理就是通过分析汇编文件然后转换为机器码。以下是51汇编与机器码对应的表格(数据来自网络,如果发现有误请联系QQ149…

【InternLM 大模型实战】第四课

XTuner 大模型单卡低成本微调实战 FINETUNE简介指令跟随微调增量预训练微调LoRA & QLoRA XTuner简介功能亮点适配多种生态适配多种硬件 8GB 显卡玩转LLMFlash AttentionDeepSpeed ZeRO 动手实战环节环境配置微调准备配置文件模型下载数据集下载修改配置文件开始微调将得到的…

HTML标签(一)

目录 HTML语法规范 基本语法概述 标签关系 HTML基本结构标签 第一个HTML网页 开发工具 VSCode的使用: VScode工具生成骨架标签新增代码 文档类型声明标签 lang语言种类 字符集 总结 HTML常用标签 标签语义 标题标签 段落标签 换行标签 文本格式化…

unity urp 视差卡牌

总体效果大概四层,从后往前排序为:卡背、背景、画像、边框 首先卡背比较简单,只要判断如果网格的背面就直接采样卡背图片展示即可 资源准备: 然后是背景,网上找到一张这样的图。 但他还不符合要求,我们的…

Tomcat源码解析(一): Tomcat整体架构

Tomcat源码系列文章 Tomcat源码解析(一): Tomcat整体架构 目录 一、Tomcat整体架构1、Tomcat两个核心组件功能2、Tomcat支持的多种I/O模型和应用层协议 二、Connector连接器1、连接器功能汇总2、ProtocolHandler组件2.1、Endpoint2.2、Processor 3、Adapter组件 三…

好大夫问诊数据爬虫记录

好大夫问诊数据爬虫入库字段记录 获取医生的病程列表 uid Column(Integer, primary_keyTrue, autoincrementTrue) gender Column(String(10)) # 性别 age Column(Integer) # 年龄 # 总交流次数 total_communication_times Column(Integer) # 医生回复次数 doctor_reply_t…

uniapp 编译后文字乱码的解决方案

问题: 新建的页面中编写代码,其中数字和图片都可以正常显示,只有中文编译后展示乱码 页面展示也是乱码 解决方案: 打开HuilderX编辑器的【文件】- 【以指定编码重新打开】- 【选择UTF-8】 然后重新编译就可以啦~ 希望可以帮到你啊~

2023极客大挑战web小记

拿到题目提示post传参还以为是道签到题 刚开始直接把自己极客大挑战的username以及password怼上去,但是不对。看看F12,有提示。 当一个搜索蜘蛛访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在&#xff0c…

部署Tomcat及其负载均衡

Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。一般来说,Tomcat虽然和Apache或者Nginx这些Web服务器一样&#xf…

CSS 下载进度条

<template><view class=btn>下载中</view></template><script></script><style>/* 设置整个页面的样式 */body {width: 100vw; /* 页面宽度为视口宽度 */background: #000000; /* 背景颜色为白色 */display: flex; /* 使用 flex…