42.会话划分问题求解(打标)

news2024/12/29 6:41:31

在这里插入图片描述
在这里插入图片描述

思路分析:
(1)为每一次浏览找到他的上一次浏览时间
lag(view_timestamp, 1, 0) over(partition by user_id order by view_timestamp) as last_view_timestamp
(2)为>60s的设置一个初始会话的标签flagif(view_timestamp - last_view_timestamp > 60, 1, 0) flag
(3)对flag开窗求和,属于同一会话的和相同。sum(flag) over(PARTITION by user_id ORDER by view_timestamp) flag
(4)使用user_id与flag拼接会话id,结果就是相邻两次会话间隔不超过60s的id相同。

注:lag(view_timestamp, 1, 0) 表示向上取一行,取不到的赋默认值0
这道题将会话划分问题转化为flag的打标问题,同一会话内flag求和相同

代码实现:

select 
    user_id,
    page_id,
    view_timestamp,
    concat(user_id, '-', flag) session_id
from(
        SELECT 
            user_id,
            page_id,
            view_timestamp,
            sum(flag) over(PARTITION by user_id ORDER by view_timestamp) flag
        from(
                SELECT 
                    user_id,
                    page_id,
                    view_timestamp,
                    --为>60s的设置一个初始会话的标签
                    if(view_timestamp - last_view_timestamp > 60, 1, 0) flag
                from(
                        SELECT 
                        	user_id,
                            page_id,
                            view_timestamp,
                            --0表示取不到时候赋予的默认值
                            lag(view_timestamp, 1, 0) over(partition by user_id order by view_timestamp) as last_view_timestamp
                        from page_view_events
                    ) t1
            ) t2
    ) t3;

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

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

相关文章

REF543KB127AAAA 支持整个企业的有效扩展规划和分析

REF543KB127AAAA 支持整个企业的有效扩展规划和分析 OneStream首席执行官Tom Shea表示:“放眼市场,能够在不依赖数据科学团队或第三方工具的情况下处理大量数据以进行预测决策的FP&A供应商并不多。“我们新的内置人工智能和人工智能功能将使财务和运营团队能够…

【LeetCode刷题(数据结构与算法)】:对链表进行插入排序

给定单个链表的头 head ,使用 插入排序 对链表进行排序,并返回 排序后链表的头 插入排序 算法的步骤: 插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表 每次迭代中,插入排序只从输入数据…

【Leetcode】 96. 不同的二叉搜索树

给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。 示例 1: 输入:n 3 输出:5 示例 2: 输入:n 1 输出&#xff1a…

搭建可远程访问的服务:利用Apache和内网穿透实现公网访问

文章目录 前言1.Apache服务安装配置1.1 进入官网下载安装包1.2 Apache服务配置 2.安装cpolar内网穿透2.1 注册cpolar账号2.2 下载cpolar客户端 3. 获取远程桌面公网地址3.1 登录cpolar web ui管理界面3.2 创建公网地址 4. 固定公网地址 前言 Apache作为全球使用较高的Web服务器…

innovus:stripe下不放std cell的命令

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 一些drc问题在place阶段就可以检查出来,比如preroute drc,这种就是standard cell的pin shape和power plan之间的drc问题,可能是和pg via也可能是和stripe。 为了避…

锁定云栖大会!共同见证阿里云大数据+AI产品年度重磅发布及创新

2023 云栖大会将于 10.31-11.2 在杭州云栖小镇举办,深度拥抱大数据AI 核心技术,见证阿里云大数据AI产品年度重磅发布及创新。开放融合的科技展示平台,汇聚生态、启迪想象。在这里,共同探索智能时代的无线机遇和未来。 阿里云大数…

Vue3集成高德地图:快速上手,实现你的业务需求

Vue3集成高德地图 前言一、准备工作1.开发文档2.添加应用 二、使用步骤命令安装2.地图容器创建3.组件引入4.js api 安全密钥5.初始化地图6. 图层6.1 添加 / 设置 / 获取 / 移除图层6.1.1 添加图层6.1.2 设置图层6.1.3 获取图层6.1.4 移除图层 7. 点标记8. 信息窗体8.1 默认信息…

Qt 为Android app添加系统签名

Qt 为Android app添加系统签名 flyfish 一 环境 lsb_release -aNo LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 23.04 Release: 23.04 Codename: lunarQt Creator 10.0.2 构建套件 Qt 6.5.1 Clang arm64-v8a 二 运行Qt 如果没有Qt图标 在终端…

【Springboot】Filter 过滤器的使用

一、基本介绍 过滤器 Filter 作为 Java 三大器之一,在 Java Web 的使用中有很高的地位。所谓过滤器,就是实现了 javax.servlet.Filter 接口的服务器端程序,就是对事物进行过滤的。在 Web 中的过滤器,当然就是对请求进行过滤&#…

2023常见自动化测试工具集合

1、Appium -------> AppUI自动化测试 官网:http://appium.io Appium 是一个移动端自动化测试开源工具,支持iOS 和Android 平台,支持Python、Java 等语言,即同一套Java 或Python 脚本可以同时运行在iOS 和Android平台&#x…

关于图像分割SDK的一些基础认识

随着科技的不断发展,图像分割SDK已经成为了一个备受关注的话题。而在众多图像分割SDK中,美摄图像分割SDK以其独特的功能和优势脱颖而出。本文将从美摄图像分割SDK的企业价值和互联网娱乐方面,介绍其宣传文章的具体写作规范。 在企业价值方面&…

如何用IP地址解决广告精准投放问题

IP地址可以在广告精准投放中发挥关键作用,因为它提供了有关用户的地理位置信息。通过结合IP地址和其他数据,广告公司和平台可以更精准地定位广告受众,从而提高广告投放的效果。以下是一些方式,说明了如何使用IP地址来解决广告精准…

BCT(block change tracking)引起的异机恢复问题

前提说明 exadata 12.1.0.2的环境,做异机恢复,恢复到单机环境。 现象及报错 Rman异机恢复hang住不动(已做set newname),db的alert日志中出现以下报错 --个人印象中还有asmb的trc报错,这次没有找到 原因及解…

限流与下载接口请求数控制

收银台系统相对于互联网应用流量要平稳很多,高峰流量也就平时的三倍,完全是可控的,我们这里用限流主要是控制后台同时下载XLS表格的请求数,因为后台系统要提供大量的导出XLS表格功能,收银员与管理人员需要用我们导出的…

标准化格式输出:DateTimeFormatter

public static void main(String[] args) {LocalDateTime ldt LocalDateTime.now();System.out.println(ldt);//格式化输出时间//创建DateTimeFormatter对象来进行格式化DateTimeFormatter dateTimeFormatter DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH时mm分ss秒&…

聊天室即时通讯系统源码 类似微信的H5聊天系统APP源码 ThinkPHP内核

前端: 用Dcloud 的 uni-app全系,基于vue.js和微信小程序开发模式。 目前支持APP(android、ios)、H5、微信小程序、支付宝小程序5端。 在特定场景可以用weex进行原生渲染。 APP用的是Dcloud 公司的H5进行原生接口调用。 后端:…

图像语义分割 pytorch复现U2Net图像分割网络详解

图像语义分割 pytorch复现U2Net图像分割网络详解 1、U2Net网络模型结构2、block模块结构解析RSU-7模块RSU-4Fsaliency map fusion module U2Net网络结构详细参数配置RSU模块代码实现RSU4F模块代码实现u2net_full与u2net_lite模型配置函数U2Net网络整体定义类损失函数计算评价指…

LXC、Docker、 Kubernetes 容器以及Hypervisor的区别

LXC、Docker、 Kubernetes 容器以及Hypervisor的区别 SaaS: Software-as-a-Service(软件即服务) PaaS: Platform-as-a-Service(平台即服务) IaaS: Infrastructure-as-a-Service(基础设施即服务) 1、Docke…

划重点!3DEXPERIENCE SOLIDWORKS 2024 十大增强功能

SOLIDWORKS 2024 以更加强大的姿态亮相,帮助您重塑设计。为了助力您简化和加快由概念到成品的产品开发流程,SOLIDWORKS 2024 涵盖全新以用户为中心的增强功能,致力帮您实现更智能、更快速地与您的团队和外部合作伙伴协同工作。本篇为大家介绍…

微信公众号怎么从个人转为企业?

公众号账号迁移的作用是什么?只能变更主体吗?1.可合并多个公众号的粉丝、文章,打造超级大V2.可变更公众号主体,更改公众号名称,变更公众号类型——订阅号、服务号随意切换3.可以增加留言功能4.个人订阅号可迁移到企业名…