mysql-sql-练习题-2-窗口函数

news2024/11/19 7:40:17

窗口函数

  • 访问量max sum
    • 建表
    • 窗口函数
    • 连接
  • 直播间人数 第1、3名
    • 建表
    • 排名+sum

访问量max sum

每个用户截止到每月为止,最大单月访问次数,累计到该月的总访问次数
在这里插入图片描述

建表

create table visit(
	uid1 varchar(5) comment '用户id',
	month1 varchar(10) comment '月份',
	visit integer comment '访问量'
) comment '用户每月访问量';

insert into visit
values
  ('A','2000-01',33),
  ('A','2000-02',10),
  ('A','2000-03',38),
  ('B','2000-01',30),
  ('B','2000-02',15),
  ('B','2000-03',44);

窗口函数

select
  *,
  max(visit) over(partition by uid1 order by month1) visit_max, -- 加字段 窗口函数
  sum(visit) over(partition by uid1 order by month1) visit_sum -- 分组 1-当前行
from visit;

select
  *,
  max(visit) over w visit_max,
  sum(visit) over w visit_sum
from visit -- 替代重复部分
window w as (partition by uid1 order by month1);

在这里插入图片描述

连接

select
  *,
  (select max(visit) -- 加字段 输出max
  from visit b
  where a.uid1 = b.uid1 and a.month1 >= b.month1) visit_max, -- 连接 聚合
  (select sum(visit)
  from visit b
  where a.uid1 = b.uid1 and a.month1 >= b.month1) visit_sum
from visit a;

直播间人数 第1、3名

在这里插入图片描述

建表

create table room(
	live_id varchar(5) comment '直播间id',
	user_id varchar(3) comment '用户id',
	date_stamp varchar(17) comment '时间戳',
	entry_type varchar(6) comment '进入直播间状态:enter登陆 out退出'
) comment '直播间 人数峰值';

insert into room
values
  ('1','1','20220101 10:00:00','enter'),
  ('1','2','20220101 10:00:00','enter'),
  ('1','3','20220101 10:00:00','enter'),
  ('1','1','20220101 10:01:00','out'),
  ('1','4','20220101 10:01:01','enter'),
  ('1','5','20220101 10:05:00','enter'),
  ('1','6','20220101 10:05:50','enter'),
  ('1','2','20220101 10:06:00','out'),
  ('1','7','20220101 10:07:40','enter'),
  ('1','3','20220101 10:09:00','out'),
  ('2','12','20220101 10:00:00','enter'),
  ('2','11','20220101 10:00:00','enter'),
  ('2','11','20220101 10:01:00','out'),
  ('2','14','20220101 10:01:01','enter'),
  ('2','15','20220101 10:05:00','enter'),
  ('2','16','20220101 10:05:50','enter'),
  ('2','12','20220101 10:06:00','out'),
  ('2','17','20220101 10:07:40','enter'),
  ('2','18','20220101 10:07:50','out'),
  ('2','19','20220101 10:08:01','enter'),
  ('2','13','20220101 10:09:00','out');

排名+sum

with tmp as(-- 3. if替换 为了sum
  select
    *,
    if(entry_type = 'enter',1,-1) entry_if
  from room
),
  tmp1 as(-- 2. 每个时刻人数
    select
      *,
      sum(entry_if) over(partition by live_id order by date_stamp) count_entry -- 分组 1-当前行
    from tmp
  ),
  tmp2 as(-- 1. 最值 排名
    select
      *,
      dense_rank() over(partition by live_id order by count_entry desc) dr 
    from tmp1
  )
select *
from tmp2
where dr in (1,3);

在这里插入图片描述

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

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

相关文章

28.Gateway-网关过滤器

GatewayFilter是网关中提供的一种过滤器,可以多进入网关的请求和微服务返回的响应做处理。 GatewayFilter(当前路由过滤器,DefaultFilter) spring中提供了31种不同的路由过滤器工厂。 filters针对部分路由的过滤器。 default-filters针对所有路由的默认…

锂电池SOH预测 | 基于BP神经网络的锂电池SOH预测(附matlab完整源码)

锂电池SOH预测 锂电池SOH预测完整代码锂电池SOH预测 锂电池的SOH(状态健康度)预测是一项重要的任务,它可以帮助确定电池的健康状况和剩余寿命,从而优化电池的使用和维护策略。 SOH预测可以通过多种方法实现,其中一些常用的方法包括: 容量衰减法:通过监测电池的容量衰减…

.NET 检测地址/主机/域名是否正常

&#x1f331;PING 地址/主机名/域名 /// <summary>/// PING/// </summary>/// <param name"ip">ip</param>/// <returns></returns>public static bool PingIp(string ip){System.Net.NetworkInformation.Ping p new System.N…

Qt/C++ 波形绘制双缓冲下改善PaintEvent连续绘制卡顿问题(完整代码解析)

音频波形可视化&#xff1a;该控件用于将音频样本数据可视化为波形&#xff0c;常用于音频处理软件中以展示音频信号的时间域特性。 动态数据绘制&#xff1a;控件能够响应外部数据的变化并重新绘制波形&#xff0c;适用于实时或动态的音频数据流。 自定义绘制逻辑&#xff1…

git变更远端仓库名之后如何修改本地仓库配置的另一种方法?(删remote指针、添加、绑定master)

背景 如果某个远端的仓库地址变化后&#xff0c;本地仓库可以修改对应的remote。 之前谈过几种方法&#xff0c;比如重新设置一个新的remote的指针&#xff0c;绑定到新地址。然后删除origin&#xff0c;然后把新指针mv到origin。比如直接seturl修改&#xff08;git remote se…

Apache Seata如何解决TCC 模式的幂等、悬挂和空回滚问题

title: 阿里 Seata 新版本终于解决了 TCC 模式的幂等、悬挂和空回滚问题 author: 朱晋君 keywords: [Seata、TCC、幂等、悬挂、空回滚] description: Seata 在 1.5.1 版本解决了 TCC 模式的幂等、悬挂和空回滚问题&#xff0c;这篇文章主要讲解 Seata 是怎么解决的。 今天来聊一…

容器安全-镜像扫描

前言 容器镜像安全是云原生应用交付安全的重要一环&#xff0c;对上传的容器镜像进行及时安全扫描&#xff0c;并基于扫描结果选择阻断应用部署&#xff0c;可有效降低生产环境漏洞风险。容器安全面临的风险有&#xff1a;镜像风险、镜像仓库风险、编排工具风险&#xff0c;小…

STM32HAL库++ESP8266+cJSON连接阿里云物联网平台

实验使用资源&#xff1a;正点原子F1 USART1&#xff1a;PA9P、A10&#xff08;串口打印调试&#xff09; USART3&#xff1a;PB10、PB11&#xff08;WiFi模块&#xff09; DHT11&#xff1a;PG11&#xff08;采集数据、上报&#xff09; LED0、1&#xff1a;PB5、PE5&#xff…

神经网络的优化器

神经网络的优化器是用于训练神经网络的一类算法&#xff0c;它们的核心目的是通过改变神经网络的权值参数来最小化或最大化一个损失函数。优化器对损失函数的搜索过程对于神经网络性能至关重要。 作用&#xff1a; 参数更新&#xff1a;优化器通过计算损失函数相对于权重参数的…

c++理论篇(一) ——浅谈tcp缓存与tcp的分包与粘包

介绍 在网络通讯中,Linux系统为每一个socket创建了接收缓冲区与发送缓冲区,对于TCP协议来说,这两个缓冲区是必须的.应用程序在调用send/recv函数时,Linux内核会把数据从应用进程拷贝到socket的发送缓冲区中,应用程序在调用recv/read函数时,内核把接收缓冲区中的数据拷贝到应用…

Xcode 15构建问题

构建时出现的异常&#xff1a; 解决方式&#xff1a; 将ENABLE_USER_SCRIPT_SANDBOXING设为“no”即可&#xff01;

【Linux命令行艺术】1. 初见命令行

&#x1f4da;博客主页&#xff1a;爱敲代码的小杨. ✨专栏&#xff1a;《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 |《MySQL探索之旅》 |《Web世界探险家》 ❤️感谢大家点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;&#xff0c;您的三连就是我持续更…

【网络基础】深入理解UDP协议:从报文格式到应用本质

文章目录 前言Udp协议段格式1. 几乎所有协议首要解决的两个问题&#xff1a;a) 如何分离&#xff08;封装&#xff09;b) 如何进行向上交付 2. 理解报文本身3. 对Udp报文字段的解释4. Udp的特点如何理解 面向数据报&#xff1a; 5. IO类接口的本质&#xff1a;sento、recvfromU…

RS0102YH8功能和参数介绍及如何计算热耗散

RS0102YH8功能和参数介绍-公司新闻-配芯易-深圳市亚泰盈科电子有限公司 RS0102YH8 是一款电平转换芯片&#xff0c;由润石&#xff08;RUNIC&#xff09;公司生产。以下是关于RS0102YH8的一些功能和参数的介绍&#xff1a; 电平转换功能&#xff1a; RS0102YH8旨在提供电平转换…

k8s学习(三十七)centos下离线部署kubernetes1.30(高可用)

文章目录 准备工作1、升级操作系统内核1.1、查看操作系统和内核版本1.2、下载内核离线升级包1.3、升级内核1.4、确认内核版本 2、修改主机名/hosts文件2.1、修改主机名2.2、修改hosts文件 3、关闭防火墙4、关闭SELINUX配置5、时间同步5.1、下载NTP5.2、卸载5.3、安装5.4、配置5…

PyQt5如何在Qtdesigner里修改按钮形状、大小、按钮颜色、字体颜色等参数,尤其是如何将按钮修改成圆形。

步骤如下&#xff1a; 1、右键选中你要修改的按钮&#xff0c;此处以Pushbutton为例&#xff0c;选择“改变样式表”&#xff0c;打开编辑样式表对话框&#xff0c;如下图所示 2、在编辑样式表对话框中输入如下代码&#xff1a; QPushButton{ border:1px solid red; /*边框…

rabbitmq下载安装最新版本--并添加开机启动图文详解!!

一、简介 RabbitMQ是一个开源的遵循AMQP协议实现的消息中间件支持多种客户端语言,用于分布式系统中存储和转发消息, 这是 Release RabbitMQ 3.13.0 rabbitmq/rabbitmq-server GitHub 二、安装前准备 1、查看自己系统 确认操作系统版本兼容性 uname -a2、下载Erlang依赖包…

Flutter笔记:DefaultTextStyle和DefaultTextHeightBehavior解读

Flutter笔记 DefaultTextStyle和DefaultTextHeightBehavior解读 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:htt…

上位机图像处理和嵌入式模块部署(树莓派4b下使用sqlite3)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 嵌入式设备下面&#xff0c;有的时候也要对数据进行处理和保存。如果处理的数据不是很多&#xff0c;一般用json就可以。但是数据如果量比较大&…

GPT学术优化推荐(gpt_academic )

GPT学术优化 (GPT Academic):支持一键润色、一键中英互译、一键代码解释、chat分析报告生成、PDF论文全文翻译功能、互联网信息聚合GPT等等 ChatGPT/GLM提供图形交互界面&#xff0c;特别优化论文阅读/润色/写作体验&#xff0c;模块化设计&#xff0c;支持自定义快捷按钮&…