sql - Databricks SQL - 间隔中的最大同时事件计数
问题描述
我正在使用数据块,我有一个 1.5 亿行数据集“df1”,其中包含以下列:
- event_id
- event_group_id
- 开始时间(时间戳)
- 结束时间(时间戳)
我想创建另一个数据集“df2”,计算所有同时发生的事件,并且对于每 5 分钟的时间窗口,获取最大值。另外,每个 group_event_id 都需要它。“df2”数据集应该是这样的:
- 时间窗口
- event_group_id
- 最大事件计数
我想在最小开始时间之前的时间窗口开始 time_window 列,并在最大结束时间之后的时间窗口结束它。你能帮助我吗?
解决方案
您可能需要查询和加入很多!您可以通过开始和结束时间(派生表)的联合获得一个不同的组列表、关键时间 ctime,然后将其加入到每个组的表聚合和 ctime 多少组 = 和 start >= ctime 和 end < ctime (假设不包括结束时间)。该窗口在组内从一个 ctime 到下一个 ctime。这可能在后期处理中做得更好。
推荐阅读
- linux - 在linux中平均间隔注释的功能
- javascript - Axios 承诺混乱
- jmeter - 在JMeter中逐个添加用户
- mongodb - WebStorm - 启动“Mongod”工具后运行默认配置?
- reactjs - 如何在 React 中处理多页 JSON 响应的调度
- android - 是否可以检查电话号码是否已在 Firebase 中注册,否则请转到注册
- sql - 需要帮助从查询中删除最后一个逗号
- loops - addEventListener 不会触发
- 在 for 循环中
- javascript - 按下按钮时反应本机加载数据
- css - 如何在 Oracle APEX 5 中添加自定义 css 字体图标