数据分析师 ---- SQL强化(3)
数据分析师 ---- SQL强化(3)
题目:每个月Top3的周杰伦歌曲
从听歌流水中找到18-25岁用户在2022年每个月播放次数top 3的周杰伦的歌曲
输入例子:
drop table if exists play_log;
create table `play_log` (`fdate` date,`user_id` int,`song_id` int
);
insert into play_log(fdate, user_id, song_id)
values
('2022-01-08', 10000, 0),
('2022-01-16', 10000, 0),
('2022-01-20', 10000, 0),
('2022-01-25', 10000, 0),
('2022-01-02', 10000, 1),
('2022-01-12', 10000, 1),
('2022-01-13', 10000, 1),
('2022-01-14', 10000, 1),
('2022-01-10', 10000, 2),
('2022-01-11', 10000, 3),
('2022-01-16', 10000, 3),
('2022-01-11', 10000, 4),
('2022-01-27', 10000, 4),
('2022-02-05', 10000, 0),
('2022-02-19', 10000, 0),
('2022-02-07', 10000, 1),
('2022-02-27', 10000, 2),
('2022-02-25', 10000, 3),
('2022-02-03', 10000, 4),
('2022-02-16', 10000, 4);drop table if exists song_info;
create table `song_info` (`song_id` int,`song_name` varchar(255),`singer_name` varchar(255)
);
insert into song_info(song_id, song_name, singer_name)
values
(0, '明明就', '周杰伦'),
(1, '说好的幸福呢', '周杰伦'),
(2, '江南', '林俊杰'),
(3, '大笨钟', '周杰伦'),
(4, '黑键', '林俊杰');drop table if exists user_info;
create table `user_info` (`user_id` int,`age` int
);
insert into user_info(user_id, age)
values
(10000, 18)
输出例子:
month|ranking|song_name|play_pv
1|1|明明就|4
1|2|说好的幸福呢|4
1|3|大笨钟|2
2|1|明明就|2
2|2|说好的幸福呢|1
2|3|大笨钟|1
例子说明:
1月被18-25岁用户播放次数最高的三首歌为“明明就”、“说好的幸福呢”、“大笨钟”,“明明就”和“说好的幸福呢”播放次数相同,排名先后由两者的song_id先后顺序决定。2月同理。
表:play_log

表:song_info

表:user_info

题目解析:
关于这样的题我们需要找出需要使用的数据,然后再一步一步的解决问题
多表关联:找出每个月周杰伦每一首歌的的播放量
SELECT MONTH(fdate) `month`,s.song_name,count(*) play_pv
FROM play_log p join user_info u
on p.user_id=u.user_id
JOIN (SELECT song_id,song_name FROM song_info where singer_name="周杰伦") s
on p.song_id = s.song_id
GROUP BY `month`,s.song_name
生成排名:根据每一首歌的播放量生成每个月中的播放量排名
使用的是窗口函数:ROW_NUMBER() 和 over()
SELECT `month`,ROW_NUMBER() over(PARTITION BY month ORDER BY play_pv DESC) ranking,song_name,play_pvFROM (SELECT MONTH(fdate) `month`,s.song_name,count(*) play_pvFROM play_log p join user_info uon p.user_id=u.user_id JOIN (SELECT song_id,song_name FROM song_info where singer_name="周杰伦") son p.song_id = s.song_idGROUP BY `month`,s.song_name) tmp) tmp2
返回排名前3的数据:使用where筛选条件
完整答案
SELECT *
FROM (SELECT `month`,ROW_NUMBER() over(PARTITION BY month ORDER BY play_pv DESC) ranking,song_name,play_pvFROM (SELECT MONTH(fdate) `month`,s.song_name,count(*) play_pvFROM play_log p join user_info uon p.user_id=u.user_id JOIN (SELECT song_id,song_name FROM song_info where singer_name="周杰伦") son p.song_id = s.song_idGROUP BY `month`,s.song_name) tmp) tmp2
where ranking<4
ORDER BY `month`,ranking
答案结果:

注:这里面有一个’播放次数相同,排名先后由两者的song_id先后顺序决定‘这个问题我暂时没有什么好的解决方案,如果你们有好的解决方案可以分享出来。
相关文章:
数据分析师 ---- SQL强化(3)
数据分析师 ---- SQL强化(3) 题目:每个月Top3的周杰伦歌曲 从听歌流水中找到18-25岁用户在2022年每个月播放次数top 3的周杰伦的歌曲 输入例子: drop table if exists play_log; create table play_log (fdate date,user_id int,song_id int ); inser…...
微信小程序商品分类页最佳实践
首先我们来分析下UI小妹发来的产品原型图: 微信小程序商品分类页需要实现 1.单击左边的商品类目,右侧实现联动跳转到对应商品类目标题; 2.触屏拖动右侧商品列表,右侧跳转到对应商品类目; 2.分析需求我们可以把屏幕分…...
正则化解决过拟合
本片举三个例子进行对比,分别是:不使用正则化、使用L2正则化、使用dropout正则化。 首先是前后向传播、加载数据、画图所需要的相关函数的reg_utils.py: # -*- coding: utf-8 -*-import numpy as np import matplotlib.pyplot as plt impor…...
在 Windows 上安装 Helm包
一、前言 个人主页: ζ小菜鸡大家好我是ζ小菜鸡,让我们一起学习在 Windows 上安装 Helm包。如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连) 二、 Helm是什么 Helm是Kubernetes的包管理工具,类似于centos的yum,能够快速查找、下载和安装…...
Clion开发STM32之OTA升级模块(一)
什么是OTA 百度百科解释个人理解:就是不通过烧录的方式,通过串口、网口、无线对主板运行的程序进行升级。减少后期的一个维护迭代程序的一个成本。 STM32的OTA升级模块的一个设计 程序启动的一个框架流程图(大致流程) FLASH的一个划分框图 BootLoader…...
Java供应链安全检测SDL方法论
近些年,开源程序陆续爆出安全漏洞,轻则影响用户体验,重则业务应用沦陷。大量的业务应用以及每天数千次的迭代,使得自动检测和治理第三方开源程序成为企业安全建设的必要一环。如何来建设这一环呢?SCA(软件成分分析) 概念 什么是SCA? 源代码或二进制扫描的软件成分分析 什…...
Magic-API的部署
目录 概述简介特性 搭建创建元数据表idea新建spring-boot项目pom.xmlapplication.properties打包上传MagicAPI-0.0.1-SNAPSHOT.jar开启服务访问 magic语法 概述 简介 magic-api是一个基于Java的接口快速开发框架,编写接口将通过magic-api提供的UI界面完成…...
程序进制换算
进制数介绍 一、进制介绍 二进制 :0或1,满2进1,以0B或者0b开头,如 0b1101 八进制:0-7,满8进1,,以0开头,如0234 十进制:0-9,满10进1,…...
Packet Tracer - 使用 CLI 配置并验证站点间 IPsec VPN
Packet Tracer - 使用 CLI 配置并验证站点间 IPsec VPN 地址分配表 设备 接口 IP 地址 子网掩码...
【华为OD机试真题】最小的调整次数(python版)100%通过率 超详细代码注释 代码解读
【华为OD机试真题 2022&2023】真题目录 @点这里@ 【华为OD机试真题】信号发射和接收 &试读& @点这里@ 【华为OD机试真题】租车骑绿道 &试读& @点这里@ 最小的调整次数 知识点队列栈 时间限制:1s空间限制:256MB限定语言:不限 题目描述: 有一个特异性…...
WPF中嵌入web网页控件 WebBrowser
1 WebBrowser特点 <font colorblue>WebBrowser控件内部使用IE的引擎,因此使用WebBrowser我们必须安装IE浏览器。 WebBrowser使用的是IE内核,许多H5新特性都不支持,然后使用谷歌内核和火狐内核会使软件的体积增加至几十MB。 <font c…...
Kafka原理之消费者
一、消费模式 1、pull(拉)模式(kafka采用这种方式) consumer采用从broker中主动拉取数据。 存在问题:如果kafka中没有数据,消费者可能会陷入循环中,一直返回空数据 2、push(推)模式 由broker决定消息发送频率,很难适应所有消费者…...
PCIe的capability扩展空间字段解释
解释 这是一段关于高级错误报告的信息,其中包含多个字段和值。以下是每个字段的详细解释: Capabilities: [100 v1] Advanced Error Reporting 这是该设备支持高级错误报告的能力标识符。 UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- R…...
力扣sql中等篇练习(二十)
力扣sql中等篇练习(二十) 1 寻找面试候选人 1.1 题目内容 1.1.1 基本题目信息1 1.1.2 基本题目信息2 1.1.3 示例输入输出 a 示例输入 b 示例输出 1.2 示例sql语句 # 分为以下两者情况,分别考虑,然后union进行处理(有可能同时满足,需要去进行去重) # ①该用户在 三场及更多…...
【神经网络】tensorflow -- 期中测试试题
题目一:(20分) 请使用Matplotlib中的折线图工具,绘制正弦和余弦函数图像,其中x的取值范围是,效果如图1所示。 要求: (1)正弦图像是蓝色曲线,余弦图像是红色曲线,线条宽度…...
计算机基础--计算机存储单位
一、介绍 计算机中表示文件大小、数据载体的存储容量或进程的数据消耗的信息单位。在计算机内部,信息都是釆用二进制的形式进行存储、运算、处理和传输的。信息存储单位有位、字节和字等几种。各种存储设备存储容量单位有KB、MB、GB和TB等几种。 二、基本存储单元…...
大数据Doris(十六):分桶Bucket和分区、分桶数量和数据量的建议
文章目录 分桶Bucket和分区、分桶数量和数据量的建议 一、分桶Bucket...
【webrtc】web端打开日志及调试
参考gist Chrome Browser debug logs sawbuck webrtc-org/native-code/logging 取日志 C:\Users\zhangbin\AppData\Local\Google\Chrome\User Data C:\Users\zhangbin\AppData\Local\Google\Chrome\User Data\chrome_debug.logexe /c/Program Files/Google/Chrome/Applicationz…...
C++ Primer第五版_第十六章习题答案(61~67)
文章目录 练习16.61练习16.62Sales_data.hex62.cpp 练习16.63练习16.64练习16.65练习16.66练习16.67 练习16.61 定义你自己版本的 make_shared。 template <typename T, typename ... Args> auto make_shared(Args&&... args) -> std::shared_ptr<T> {r…...
python定时任务2_celery flower计划任务
启动worker: celery -A tasks worker --loglevelerror --poolsolo worker启动成功 启动beat celery -A tasks beat --loglevelinfo beat启动成功 启动flower celery -A tasks flower --loglevelinfo flower启动成功,然后进入http://localhost:5555 可…...
Pixel Mind Decoder 安全加固指南:防止API滥用与敏感信息泄露
Pixel Mind Decoder 安全加固指南:防止API滥用与敏感信息泄露 1. 为什么API安全如此重要 当你把AI模型部署为公开API服务时,就像在互联网上开了一家24小时营业的商店。如果不做好安全防护,可能会遇到各种不速之客:恶意攻击者试图…...
破局足球数据分析困境:Understat工具的技术赋能与实战应用
破局足球数据分析困境:Understat工具的技术赋能与实战应用 【免费下载链接】understat An asynchronous Python package for https://understat.com/. 项目地址: https://gitcode.com/gh_mirrors/un/understat 问题发现:足球数据分析的三重技术壁…...
TwinCAT3进阶指南:台达A2伺服扭矩读取与回零实战
1. TwinCAT3与台达A2伺服的基础配置 在开始扭矩读取和回零操作之前,我们需要先完成TwinCAT3与台达A2伺服的基础配置。这部分工作看似简单,但却是后续所有高级功能的基础。我遇到过不少开发者因为基础配置没做好,导致后面各种奇怪的问题。 首先…...
400字节的前端奇迹:TinyEditor如何重新定义微型代码编辑体验
400字节的前端奇迹:TinyEditor如何重新定义微型代码编辑体验 【免费下载链接】TinyEditor A functional HTML/CSS/JS editor in less than 400 bytes 项目地址: https://gitcode.com/gh_mirrors/ti/TinyEditor 在前端开发的世界里,我们常常被功能…...
Cursor Pro激活器技术深度解析:突破API限制的逆向工程实践
Cursor Pro激活器技术深度解析:突破API限制的逆向工程实践 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached your…...
pnpm+turbo迅速搭建monorepo工程
关于monorepo monorepo 并不是一个框架、一个包、一个依赖。而是一种单仓库多包管理模式,也是基于中心化思想的实践产物。 举个例子,假设我们现在有6个项目,传统的项目管理方式(Multirepo)会按照6个代码仓库去管理&a…...
QAnything混合检索实战:ElasticSearch与向量搜索的协同优化
QAnything混合检索实战:ElasticSearch与向量搜索的协同优化 1. 为什么电商搜索总在“猜”用户心思? 你有没有遇到过这样的情况:在电商平台搜索“轻便透气运动鞋”,结果首页全是厚重的登山靴?或者搜“适合夏天穿的连衣…...
OpenWrt旁路由进阶玩法:用iPhone USB网络共享做冗余WAN口,提升家庭网络可靠性
OpenWrt旁路由进阶玩法:用iPhone USB网络共享构建冗余WAN口 当家庭网络的核心设备——主路由器突然宕机时,智能家居离线、视频会议中断、NAS文件无法访问的连锁反应会让人措手不及。而将iPhone的USB网络共享转化为OpenWrt旁路由的备用WAN口,就…...
Pixel Dream Workshop一文详解:基于diffusers的FluxPipeline定制部署
Pixel Dream Workshop一文详解:基于diffusers的FluxPipeline定制部署 1. 像素幻梦创意工坊概述 Pixel Dream Workshop(像素幻梦创意工坊)是一款专为像素艺术创作设计的AI生成工具,基于最新的FLUX.1-dev扩散模型构建。与传统AI绘…...
EVA-02一键部署教程:Python爬虫数据智能处理实战
EVA-02一键部署教程:Python爬虫数据智能处理实战 你是不是也遇到过这种情况?用Python爬虫辛辛苦苦抓了一堆网页数据,结果发现里面全是乱七八糟的HTML标签和广告信息,真正有用的内容被埋得严严实实。手动写规则去提取吧࿰…...
