Hive 实操案例六:统计上传视频最多的用户 Top10 以及他们上传的视频观看次数在前 20 的视频

一、数据表结构

视频表 t_video

字段注释描述
videoId视频唯一 id(String)11 位字符串
uploader视频上传者(String)上传视频的用户名 String
age视频年龄(int)视频在平台上的整数天
category视频类别(Array<String>上传视频指定的视频分类
length视频长度(Int)整形数字标识的视频长度
views观看次数(Int)视频被浏览的次数
rate视频评分(Double)满分 5 分
Ratings流量(Int)视频的流量,整型数字
conments评论数(Int)一个视频的整数评论数
relatedId相关视频 id(Array<String>相关视频的 id,最多 20 个

用户表 t_user

字段注释类型
uploader上传者用户名string
videos上传视频数int
friends朋友数量int

二、具体实现

-- 统计上传视频最多的用户 Top10 以及他们上传的视频观看次数在前 20 的视频
/**思路:1.处理结果集 1:在用户表中按照 uploader 分组聚合统计每个用户的总上传视频数,再使用 order by 降序和 limit 获取前 10 的用户2.处理结果集 2:在视频表中按照 videoid 和 uploader 分组聚合统计观看次数3.使用结果集 1 左连接结果集 2,关联字段为 uploader,然后使用排序窗口函数按左表的 uploader 分组,右表的观看次数降序进行组内编号4.使用 where 子句选取前 20 的数据
*/
SELECT uploader,videoid,num,rn 
FROM 
(SELECT a.uploader,b.videoid,b.num,DENSE_RANK() over(PARTITION by a.uploader ORDER by b.num DESC) as rn FROM (SELECT uploader,SUM(videos) as videos  FROM t_usergroup by uploader order by videos DESC limit 10) aleft join(SELECT videoid,uploader,SUM(`views`) as num FROM t_videogroup by videoid, uploader) bon a.uploader=b.uploader
) t
WHERE rn <= 20;

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

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

相关文章

源码编译安装PostgreSQL数据库

源码安装PostgreSQL数据库&#xff08;Linux 6&#xff09; 安装编译环境 yum -y install gcc make yum -y install libicu-devel pango pango-devel cairo cairo-devel readline-devel zlib-devel 安装PostgreSQL 解压 postgresql-16.0.tar.gz #tar -xzf postgresql-16.0.ta…

FastGPT本地手动部署(二)

本篇文章主要介绍如何在本地手动部署 FastGPT。 一、环境配置 本文是在 Ubuntu20.04 上安装,安装 fnm、node、pnpm,依次进行如下配置。 (1) 安装 fnm 首先,安装 fnm,fnm可以指定安装的 node 版本,执行如下命令。 curl -fsSL https://fnm.vercel.app/install | bash …

系统工程与信息系统基础(上)

目录 系统工程 霍尔三维结构的三维&#xff1a; 切克兰德方法&#xff1a; 并行工程方法&#xff1a; 综合集成法&#xff1a; WSR系统方法&#xff1a; 系统工程生命周期阶段 探索性阶段 概念阶段 开发阶段 生产阶段 使用阶段 保障阶段 退役阶段 系统工程生命周…

初识HTML

HTML语法规范 1、HTML标签是由尖括号包围的关键字&#xff0c;例如<html>。 2、HTML标签通常成对出现&#xff0c;例如<html></html>&#xff0c;此为双标签&#xff0c;标签对的第一个标签是开始标签&#xff0c;第二个标签是结束标签。 3、有些特殊标签…

C++ 设计模式之状态模式

C 设计模式之状态模式 简介 1、状态模式 &#xff08;State&#xff09;是一种行为型设计模式&#xff0c;它允许一个对象在其内部状态发生改变时改变它的行为&#xff0c;对象看起来似乎修改了它的类。该模式主要用于实现一个对象在多种状态转换时能够自动切换到正确的行为。…

山东大学计算机组成原理-期末复习纲要

考试题型&#xff1a;单选题、简答题&#xff08;如原码一位乘法运算、屏蔽技术的程序执行流程等&#xff09;、设计题&#xff08;字位扩展、指令微操作流程、cache等&#xff09;&#xff0c;作业难度、题型 课本&#xff1a;《计算机组成原理&#xff08;第三版&#xff09…

详解flink sql, calcite logical转flink logical

文章目录 背景示例FlinkLogicalCalcConverterBatchPhysicalCalcRuleStreamPhysicalCalcRule其它算子FlinkLogicalAggregateFlinkLogicalCorrelateFlinkLogicalDataStreamTableScanFlinkLogicalDistributionFlinkLogicalExpandFlinkLogicalIntermediateTableScanFlinkLogicalInt…

语音唤醒入门(基于ESP-skainet)

主要参考资料&#xff1a; ESP-SR 用户指南: https://docs.espressif.com/projects/esp-sr/zh_CN/latest/esp32s3/index.html 目录 ESP提供的模型直接初始化和使用模型AFE声学前端算法 使用模型 自定义模型 ESP提供的模型 乐鑫提供了经过训练的 WakeNet 和 MultiNet 模型&…

45.分解质因数

上海市计算机学会竞赛平台 | YACSYACS 是由上海市计算机学会于2019年发起的活动,旨在激发青少年对学习人工智能与算法设计的热情与兴趣,提升青少年科学素养,引导青少年投身创新发现和科研实践活动。https://www.iai.sh.cn/problem/711 题目描述 给定一个整数 𝑛n,请将它…

HDFS详细介绍以及HDFS集群环境部署【hadoop组件HDFS笔记】(图片均为学习时截取的)

HDFS详细介绍 HDFS是什么 HDFS是Hadoop三大组件(HDFS、MapReduce、YARN)之一 全称是&#xff1a;Hadoop Distributed File System&#xff08;Hadoop分布式文件系统&#xff09;&#xff1b;是Hadoop技术栈内提供的分布式数据存储解决方案 可以在多台服务器上构建存储集群&…

云计算【第一阶段(21)】Linux引导过程与服务控制

目录 一、linux操作系统引导过程 1.1、开机自检 1.2、MBR引导 1.3、GRUB菜单 1.4、加载 Linux 内核 1.5、init进程初始化 1.6、简述总结 1.7、初始化进程centos 6和7的区别 二、排除启动类故障 2.1、修复MBR扇区故障 2.1.1、 实验 2.2、修复grub引导故障 2.2.1、实…

敏捷开发笔记(第9章节)--开放-封闭原则(OCP)

目录 1&#xff1a;PDF上传链接 9.1 开放-封闭原则&#xff08;OCP&#xff09; 9.2 描述 9.3 关键是抽象 9.3.1 shape应用程序 9.3.2 违反OCP 糟糕的设计 9.3.3 遵循OCP 9.3.4 是的&#xff0c;我说谎了 9.3.5 预测变化和“贴切的”结构 9.3.6 放置吊钩 1.只受一次…

团队任务管理跟踪软件有哪些?分享2024年值得关注的10款

本文将分享2024年值得关注的10款团队任务管理跟踪软件&#xff1a;Worktile、PingCode、Zoho Projects、Wrike、ProofHub、Connecteam、MeisterTask、Nifty、BIGContacts、Hive。 无论是小型初创企业还是庞大的跨国公司&#xff0c;高效的任务管理都能显著提升工作效率&#xf…

面试框架一些小结

springcloud的⼯作原理 springcloud由以下⼏个核⼼组件构成&#xff1a; Eureka&#xff1a;各个服务启动时&#xff0c;Eureka Client都会将服务注册到Eureka Server&#xff0c;并且Eureka Client还可以反过来从Eureka Server拉取注册表&#xff0c; 从⽽知道其他服务在哪⾥ …

新能源行业知识体系-------主目录-----持续更新

本文相当于目录方便快速检索内容&#xff0c;没有实际内容&#xff0c;只做索引 文章目录 一、电力市场概论二、蒙西电网需求侧响应三、蒙西电网市场结算V2.0 一、电力市场概论 是学习清华大学电力市场概论(2024年春)的学习笔记&#xff0c;详细了解电力市场是如何利用经济学知…

48 - 按日期分组销售产品(高频 SQL 50 题基础版)

48 - 按日期分组销售产品 -- group_concat 分组拼接selectsell_date,count(distinct product) num_sold,group_concat(distinct product order by product separator ,) products fromActivities group bysell_date;

grpc教程——proto文件转go

【1】编写一个proto文件 syntax "proto3"; package myproto;service NC{rpc SayStatus (NCRequest) returns (NCResponse){} }message NCRequest{ string name 1; } message NCResponse{string status 1; } 【2】转换&#xff1a;protoc --go_out. myservice.pro…

mmdetection2.28修改backbone不使用预训练参数、从头训练

背景 最近需要测试一下在backbone部分如果不使用预训练参数的话&#xff0c;模型需要多少轮才能收敛所使用的backbone是mmcls.ConvNeXtmmdetection版本为2.28.2&#xff0c;mmcls版本为0.25.0 修改流程 最简单的方法&#xff0c;直接去mmcls的model zoo里找到对应backbone的…

SpringBoot:使用Spring Batch实现批处理任务

引言 在企业级应用中&#xff0c;批处理任务是不可或缺的一部分。它们通常用于处理大量数据&#xff0c;如数据迁移、数据清洗、生成报告等。Spring Batch是Spring框架的一部分&#xff0c;专为批处理任务设计&#xff0c;提供了简化的配置和强大的功能。本文将介绍如何使用Spr…

6-Pandas使用自定义函数

Pandas使用自定义函数 如果想要应用自定义的函数&#xff0c;或者把其他库中的函数应用到 Pandas 对象中&#xff0c;有以下三种方法&#xff1a; 1) 操作整个 DataFrame 的函数&#xff1a;pipe()2) 操作行或者列的函数&#xff1a;apply()3) 操作单一元素的函数&#xff1a…