当前位置: 首页 > news >正文

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 模式。

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

相关文章:

  • 测试理论知识三:测试用例、测试策略
  • Spring AOP入门指南:轻松掌握面向切面编程的基础知识
  • 百度百科如何创建品牌词条?
  • CSRF检测工具(XSRF检测工具)使用说明
  • FFmpeg 简单文档
  • C# WPF上位机开发(QT vs WPF)
  • redis 从0到1完整学习 (四):字符串 SDS 数据结构
  • 深信服AF防火墙升级步骤(简单粗暴)
  • 论文笔记:Accurate Localization using LTE Signaling Data
  • 类和对象(下篇)
  • .Net Core webapi RestFul 统一接口数据返回格式
  • 【WebRTC---源码篇】(二十五)音视频同步
  • C++之深拷贝和浅拷贝
  • 测试理论知识四:大型软件的测试技巧——单元测试
  • DotNet Core 在Centos上使用环境变量运行 urls 参数
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • emacs初体验
  • FastReport在线报表设计器工作原理
  • Java面向对象及其三大特征
  • js中的正则表达式入门
  • leetcode-27. Remove Element
  • RxJS: 简单入门
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • Vue.js-Day01
  • vue-loader 源码解析系列之 selector
  • Vultr 教程目录
  • webpack4 一点通
  • Zepto.js源码学习之二
  • 安装python包到指定虚拟环境
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 今年的LC3大会没了?
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 我有几个粽子,和一个故事
  • 小李飞刀:SQL题目刷起来!
  • 一、python与pycharm的安装
  • 函数计算新功能-----支持C#函数
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • #Ubuntu(修改root信息)
  • (1)虚拟机的安装与使用,linux系统安装
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (3)STL算法之搜索
  • (C++17) optional的使用
  • (windows2012共享文件夹和防火墙设置
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (十八)用JAVA编写MP3解码器——迷你播放器
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (转)一些感悟
  • .bashrc在哪里,alias妙用
  • .bat批处理(六):替换字符串中匹配的子串
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • .NET Core 实现 Redis 批量查询指定格式的Key