SQL,力扣题目1126,查询活跃业务

devtools/2024/11/20 4:52:24/

一、力扣链接

LeetCode_1126

二、题目描述

事件表:Events

+---------------+---------+
| Column Name   | Type    |
+---------------+---------+
| business_id   | int     |
| event_type    | varchar |
| occurrences   | int     | 
+---------------+---------+
(business_id, event_type) 是这个表的主键(具有唯一值的列的组合)。
表中的每一行记录了某种类型的事件在某些业务中多次发生的信息。

平均活动 是指有特定 event_type 的具有该事件的所有公司的 occurrences 的均值。

活跃业务 是指具有 多个 event_type 的业务,它们的 occurrences 严格大于 该事件的平均活动次数。

写一个解决方案,找到所有 活跃业务

三、目标拆解

四、建表语句

Create table If Not Exists Events (business_id int, event_type varchar(10), occurrences int)
Truncate table Events
insert into Events (business_id, event_type, occurrences) values ('1', 'reviews', '7')
insert into Events (business_id, event_type, occurrences) values ('3', 'reviews', '3')
insert into Events (business_id, event_type, occurrences) values ('1', 'ads', '11')
insert into Events (business_id, event_type, occurrences) values ('2', 'ads', '7')
insert into Events (business_id, event_type, occurrences) values ('3', 'ads', '6')
insert into Events (business_id, event_type, occurrences) values ('1', 'page views', '3')
insert into Events (business_id, event_type, occurrences) values ('2', 'page views', '12')

五、过程分析

1、窗口函数计算平均活动次数,不影响原字段

2、筛选有多种类型大于平均活动次数的记录

六、代码实现

with t1 as(
select business_id, event_type, occurrences, avg(occurrences) over(partition by event_type) avg_occurrences
from Events
)
select business_id
from t1 where occurrences > avg_occurrences
group by business_id having count(business_id) > 1

七、结果验证

八、小结

1、CTE表达式 + 窗口函数 + group by

2、关键句:有 多个 event_type 的业务


http://www.ppmy.cn/devtools/135387.html

相关文章

力扣 简单 70.爬楼梯

文章目录 题目介绍题解 题目介绍 题解 思路分析: 确定dp数组以及下标的含义:dp[i]: 爬到第i层楼梯,有dp[i]种方法确定递推公式:从dp[i]的定义可以看出,dp[i] 可以有两个方向推出来。首先是dp[i - 1]&…

基于YOLOv8深度学习的婴儿情绪状态检测系统(PyQt5界面+数据集+训练代码)

婴儿的情绪状态是其表达健康状况、情感需求以及与外界互动的重要方式,准确识别婴儿的情绪对父母和看护者理解其需求具有关键意义。然而,由于婴儿语言能力的缺乏,他们通常通过面部表情、动作和哭声等非语言行为来表达情绪,因此需要…

学习笔记019——Ubuntu部署tomcat

1、下载Tomcat压缩包。本人下载的版本是:apache-tomcat-8.5.77.tar.gz 2、将压缩包上传到Ubuntu某个目录。 本人存放的目录是 /opt 目录下, 命令解压: ## 解压tomcat压缩包 tar -zxvf apache-tomcat-8.5.77.tar.gz 3、vim打开bin目录的setclasspath…

ARM64环境部署EFK8.15.3收集K8S集群容器日志

环境规划 主机IP系统部署方式ES版本CPU架构用户名密码192.168.1.225Ubuntu 22.04.4 LTSdockerelasticsearch:8.15.3ARM64elasticllodyi4TMmZD ES集群部署 创建持久化目录(所有节点) mkdir -p /data/es/{data,certs,logs,plugins} mkdir -p /data/es/certs/{ca,es01}服务器…

SpringBoot整合ELK使用详解

SpringBoot整合ELK使用详解 在微服务架构中,日志系统的搭建和管理是至关重要的一环。ELK(Elasticsearch、Logstash、Kibana)作为一种强大的日志处理方案,能够帮助我们高效地收集、存储、处理和可视化日志数据。本文将详细介绍如何…

Docker部署Kafka集群,增加 SASL_SSL认证,并集成到Spring Boot,无Zookeeper版

1,准备好Kafka 镜像包: bitnami/kafka:3.9.0 镜像资源包 2,准备好kafka.keystore.jks 和 kafka.truststore.jks证书 具体操作可参考: Docker部署Kafka SASL_SSL认证,并集成到Spring Boot-CSDN博客 3,配置…

深入理解BERT模型:BertModel类详解

BERT(Bidirectional Encoder Representations from Transformers)是由Google研究人员提出的一种基于Transformer架构的预训练模型,它在多个自然语言处理任务中取得了显著的性能提升。本文将详细介绍BERT模型的核心实现类——BertModel&#x…

ue中使用webui有效果白色拖动条 有白边

这种类型&#xff0c;分析发现跟ue没有关系 是网页代码的问题 可以在外头加个overflow: hidden; <body style"height: 100%; margin: 0;overflow: hidden;">完美解决