SQL---Zeppeline前驱记录与后驱记录查询

2023-12-22 23:45

本文主要是介绍SQL---Zeppeline前驱记录与后驱记录查询,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

内容导航

类别内容导航
机器学习机器学习算法应用场景与评价指标
机器学习算法—分类
机器学习算法—回归
机器学习算法—聚类
机器学习算法—异常检测
机器学习算法—时间序列
数据可视化数据可视化—折线图
数据可视化—箱线图
数据可视化—柱状图
数据可视化—饼图、环形图、雷达图
统计学检验箱线图筛选异常值
3 Sigma原则筛选离群值
Python统计学检验
大数据PySpark大数据处理详细教程
使用教程CentOS服务器搭建Miniconda环境
Linux服务器配置免密SSH
大数据集群缓存清理
面试题整理面试题—机器学习算法
面试题—推荐系统

在这里插入图片描述

前驱记录

为了在 SQL 查询中按特定列对数据进行分区,可以在窗口函数中使用 PARTITION BY 子句。这通常用于在执行窗口函数(如 LAG)时在某些列的值上创建数据的分区。例如,如果您想按 _distinct_id 分区数据,然后在每个分区内找到符合特定条件的记录的前一条记录,可以这样做:

WITH ExtendedTable AS (SELECT_distinct_id,_part_event,plat_id,_event_time,exception_type,_kudu_pt,LAG(_part_event) OVER (PARTITION BY _distinct_id ORDER BY _event_time) AS prev_part_eventFROM YourTableWHERE _kudu_pt >= 20231115 AND _kudu_pt < 20231201
)SELECT COUNT(*) AS TotalCount
FROM ExtendedTable
WHERE_part_event = 'app_exception' AND exception_type = 7AND (prev_part_event LIKE 'dbt_ad%' OR prev_part_event LIKE 'video%' OR prev_part_event LIKE 'ad%' OR prev_part_event LIKE 'Ad%' OR prev_part_event LIKE 'insert%' OR prev_part_event LIKE 'inters%')

在这个例子中:
LAG(_part_event) OVER (PARTITION BY _distinct_id ORDER BY _event_time):此窗口函数首先按 _distinct_id 列对数据进行分区,然后在每个分区内按 _event_time 排序,从而为每条记录计算 prev_part_event。
这意味着 LAG() 函数是在每个 _distinct_id 分区内独立计算的。
请确保将 _distinct_id 替换为您实际想要用作分区依据的列名。这种方法允许您在每个分区(例如,每个用户或每个设备)内单独跟踪事件序列。

后驱记录

要查找满足特定条件(例如 _part_event = ‘app_exception’ AND exception_type = 7)的记录的后一条记录,您可以使用窗口函数 LEAD()。与 LAG() 类似,LEAD() 用于访问当前行之后的行中的数据。在您的场景中,我们将使用 LEAD() 来获取每条记录后面的 _part_event 值,然后筛选出满足您指定条件的记录。
以下是相应的 SQL 查询:

WITH ExtendedTable AS (SELECT_distinct_id,_part_event,plat_id,_event_time,exception_type,_kudu_pt,LEAD(_part_event) OVER (PARTITION BY _distinct_id ORDER BY _event_time) AS next_part_eventFROM YourTableWHERE _kudu_pt >= 20231115 AND _kudu_pt < 20231201
)SELECT COUNT(*) AS TotalCount
FROM ExtendedTable
WHERE_part_event = 'app_exception' AND exception_type = 7AND (next_part_event LIKE 'dbt_ad%' OR next_part_event LIKE 'video%' OR next_part_event LIKE 'ad%' OR next_part_event LIKE 'Ad%' OR next_part_event LIKE 'insert%' OR next_part_event LIKE 'inters%')

在此查询中:
LEAD(_part_event) OVER (PARTITION BY _distinct_id ORDER BY _event_time) 用于在 _distinct_id 分区内按 _event_time 排序后,获取每条记录后面的 _part_event 值。
最后,查询从 ExtendedTable 中选择那些满足 _part_event = ‘app_exception’ AND exception_type = 7 条件的记录,并且它们的下一条记录的 _part_event 符合您指定的模式。
这个查询将返回在指定时间段内,满足 _part_event = ‘app_exception’ AND exception_type = 7 条件的记录的数量,且它们的后一条记录符合特定的 _part_event 模式。

友情提示如果你觉得这个博客对你有帮助,请点赞、评论和分享吧!如果你有任何问题或建议,也欢迎在评论区留言哦!!!

这篇关于SQL---Zeppeline前驱记录与后驱记录查询的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/525924

相关文章

MySQL中删除重复数据SQL的三种写法

《MySQL中删除重复数据SQL的三种写法》:本文主要介绍MySQL中删除重复数据SQL的三种写法,文中通过代码示例讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下... 目录方法一:使用 left join + 子查询删除重复数据(推荐)方法二:创建临时表(需分多步执行,逻辑清晰,但会

SpringBoot基于MyBatis-Plus实现Lambda Query查询的示例代码

《SpringBoot基于MyBatis-Plus实现LambdaQuery查询的示例代码》MyBatis-Plus是MyBatis的增强工具,简化了数据库操作,并提高了开发效率,它提供了多种查询方... 目录引言基础环境配置依赖配置(Maven)application.yml 配置表结构设计demo_st

Mysql 中的多表连接和连接类型详解

《Mysql中的多表连接和连接类型详解》这篇文章详细介绍了MySQL中的多表连接及其各种类型,包括内连接、左连接、右连接、全外连接、自连接和交叉连接,通过这些连接方式,可以将分散在不同表中的相关数据... 目录什么是多表连接?1. 内连接(INNER JOIN)2. 左连接(LEFT JOIN 或 LEFT

mysql重置root密码的完整步骤(适用于5.7和8.0)

《mysql重置root密码的完整步骤(适用于5.7和8.0)》:本文主要介绍mysql重置root密码的完整步骤,文中描述了如何停止MySQL服务、以管理员身份打开命令行、替换配置文件路径、修改... 目录第一步:先停止mysql服务,一定要停止!方式一:通过命令行关闭mysql服务方式二:通过服务项关闭

Servlet中配置和使用过滤器的步骤记录

《Servlet中配置和使用过滤器的步骤记录》:本文主要介绍在Servlet中配置和使用过滤器的方法,包括创建过滤器类、配置过滤器以及在Web应用中使用过滤器等步骤,文中通过代码介绍的非常详细,需... 目录创建过滤器类配置过滤器使用过滤器总结在Servlet中配置和使用过滤器主要包括创建过滤器类、配置过滤

SQL Server数据库磁盘满了的解决办法

《SQLServer数据库磁盘满了的解决办法》系统再正常运行,我还在操作中,突然发现接口报错,后续所有接口都报错了,一查日志发现说是数据库磁盘满了,所以本文记录了SQLServer数据库磁盘满了的解... 目录问题解决方法删除数据库日志设置数据库日志大小问题今http://www.chinasem.cn天发

mysql主从及遇到的问题解决

《mysql主从及遇到的问题解决》本文详细介绍了如何使用Docker配置MySQL主从复制,首先创建了两个文件夹并分别配置了`my.cnf`文件,通过执行脚本启动容器并配置好主从关系,文中还提到了一些... 目录mysql主从及遇到问题解决遇到的问题说明总结mysql主从及遇到问题解决1.基于mysql

正则表达式高级应用与性能优化记录

《正则表达式高级应用与性能优化记录》本文介绍了正则表达式的高级应用和性能优化技巧,包括文本拆分、合并、XML/HTML解析、数据分析、以及性能优化方法,通过这些技巧,可以更高效地利用正则表达式进行复杂... 目录第6章:正则表达式的高级应用6.1 模式匹配与文本处理6.1.1 文本拆分6.1.2 文本合并6

MySQL的索引失效的原因实例及解决方案

《MySQL的索引失效的原因实例及解决方案》这篇文章主要讨论了MySQL索引失效的常见原因及其解决方案,它涵盖了数据类型不匹配、隐式转换、函数或表达式、范围查询、LIKE查询、OR条件、全表扫描、索引... 目录1. 数据类型不匹配2. 隐式转换3. 函数或表达式4. 范围查询之后的列5. like 查询6

Redis KEYS查询大批量数据替代方案

《RedisKEYS查询大批量数据替代方案》在使用Redis时,KEYS命令虽然简单直接,但其全表扫描的特性在处理大规模数据时会导致性能问题,甚至可能阻塞Redis服务,本文将介绍SCAN命令、有序... 目录前言KEYS命令问题背景替代方案1.使用 SCAN 命令2. 使用有序集合(Sorted Set)