42. 会话划分问题

文章目录

        • 题目需求
        • 思路一
        • 实现一
        • 题目来源

题目需求

现有页面浏览记录表(page_view_events)如下,每行数据代表:每个用户的每次页面访问记录。

规定若同一用户的相邻两次访问记录时间间隔小于60s,则认为两次浏览记录属于同一会话。

现有如下需求,为属于同一会话的访问记录增加一个相同的会话id字段,会话id格式为"user_id-number",其中number从1开始,用于区分同一用户的不同会话。

期望结果如下(截取部分):

user_id (用户id)page_id (页面id)view_timestamp (浏览时间戳)session_id (会话id)
100home1659950435100-1
100good_search1659950446100-1
100good_list1659950457100-1
100home1659950541100-2
100good_detail1659950552100-2
100cart1659950563100-2

需要用到的表:

页面浏览记录表:page_view_events

user_idpage_idview_timestamp
100home1659950435
100good_search1659950446
100good_list1659950457
100home1659950541
100good_detail1659950552

思路一

在这里插入图片描述

实现一

-- 2) 为属于同一会话的访问记录增加一个相同的会话id字段,会话id格式为"user_id-number"select user_id,page_id,view_timestamp,-- 计算 session_idconcat(user_id, '-', sum(flag) over (partition by user_id order by view_timestamp)) as session_id
from (select user_id,page_id,view_timestamp,-- 1.1) 获取该用户上次页面浏览时间-- 1.2)计算该用户 (本次页面浏览时间 - 上次页面浏览时间), if(本次页面浏览时间 - 上次页面浏览时间) > 60, 标记为1,否则为0if(view_timestamp - lag(view_timestamp, 1, 0) over (partition by user_id order by view_timestamp) > 60,1,0) as flagfrom page_view_events) t1;

题目来源

http://practice.atguigu.cn/#/question/42/desc?qType=SQL

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CSS 内容盒子与边框盒子

这篇比较重要,会不断更新❗ 文章目录 👇内容盒子开发者工具的使用border 边框padding 内边距margin 外边距盒子整体尺寸元素默认样式与CSS重置元素分类块级标记行级标记行内块标记 display样式内容溢出裁剪掉溢出部分滚动条 圆角边框 border-radius ✌边…

学无止境·MySQL③

单表查询 题一创建表并插入数据薪水修改为5000将姓名为张三的员工薪水修改为3000元将姓名为李四的员工薪水修改为4000元,gener改为女 题一 1.创建表: 创建员工表employee,字段如下: id(员工编号)&#xff…

Day976.如何安全、快速地接入OAuth 2.0? -OAuth 2.0

如何安全、快速地接入OAuth 2.0? Hi,我是阿昌,今天学习记录的是关于如何安全、快速地接入OAuth 2.0?的内容。 授权服务将 OAuth 2.0 的复杂性都揽在了自己身上,这也是授权服务为什么是 OAuth 2.0 体系的核心的原因之…

c++读取字符串字符时出错

这是我做的一个c爬虫程序但是在抓取网页的时候string类型传递出现了问题 以下是图片代码 url的值是 "http://desk.zol.com.cn/" 我不知道为什么数据传递会出问题 请大佬指教 后面重新启动一遍编译器查一查断点有突然没问题了 ,真是个玄学的问题。我还以…

mysql 大数据量从“.log“文件插入方法

要被插入的数据文件以及内容 表结构 插入成功,插入时如果有主键唯一索引,则按照唯一索引的大小顺序插入,速度会快很多

Linux——内核概念

一、内核 什么是内核? 计算机是由各种外部硬件设备组成的,如内存、cpu、硬盘等。如果每个应用都要和这些硬件对接通信协议,就太麻烦了,所以这个工作就由内核来负责。内核作为软件连接硬件设备的桥梁,使应用开发者只需…

(ARM)7/5

1.串口发送单个字符 2.串口发送字符串 uart4.h #ifndef __UART4_H__ #define __UART4_H__#include "stm32mp1xx_uart.h" #include "stm32mp1xx_rcc.h" #include "stm32mp1xx_gpio.h"//初始化相关操作 void hal_uart4_init();//发送一个字符 v…

云计算——虚拟化层架构

作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​ 前言 本章将会讲解云计算的虚拟化层架构,了解云计算虚拟化层都有哪些架构模式…

Java POI excel单元格背景色(填充)、字体颜色(对齐)、边框(颜色)、行高、列宽设置

文章目录 1、Excel Cell单元格背景色颜色名称对照关系2、Excel Cell单元格背景填充样式颜色填充对照关系3、Excel Cell字体样式设置对照图4、Excel 行高、列宽设置5、Excel单元格边框设置边框类型图片对比附一:一些问题1、关于列宽使用磅*20的计算方式2、关于行高使…

开发抖音短视频账号矩阵系统技术实现能解决一机一号实名认证问题?

一、短视频账号矩阵系统解决一机一号实名认证问题? 目前站在开发者角度来看问的比较多,做开发技术类矩阵saas工具,需要的多账号怎么解决,这需要从两个方面来做开发解决。 第一、从开发角度来看技术开发首先解决代理ip分发问题&a…

DAY38:贪心算法(五)K次取反后最大数组和+加油站

文章目录 1005.K次取反后最大化的数组和思路直接升序排序的写法最开始的写法:逻辑错误修改版时间复杂度 自定义sort对绝对值排序的写法sort的自定义比较函数cmp必须声明为static的原因std::sort升降序的问题(默认升序)时间复杂度 总结 134.加…

N天爆肝数据库——MySQL(1)

数据库概念理解 数据库 DB 存储数据的仓库 数据库管理系统 DBMS 操纵和管理数据库的大型软件 SQL 操作关系型数据库的编程语言,定义了用一套操作关系型数据库同意标准 学习 SQL 的作用 SQL 是一门 ANSI 的标准计算机语言,用来访问和操作数据库系统。S…