首页 > 数据库 >MySQL 使用表的自联结,lag,lead得到该行记录所在连续段长度

MySQL 使用表的自联结,lag,lead得到该行记录所在连续段长度

时间:2023-08-14 20:58:22浏览次数:91  
标签:段长度 lead OVER lag ORDER MySQL id SELECT

目录

题目地址

https://leetcode.cn/problems/human-traffic-of-stadium/description/

代码


# # Write your MySQL query statement below

# # 本质上就是连续签到问题呗

# SELECT  Version() # 8.0.33,用户变量编程用不了

with t1 as(
    SELECT * from stadium where people>=100 order by id asc
)
,
Ranked AS (
    SELECT *,
           LAG(id, 1, id - 1) OVER (ORDER BY id) AS prev_id,
           LEAD(id, 1, id + 1) OVER (ORDER BY id) AS next_id
    FROM t1
)
, 
Segments AS (
    SELECT *, 
           CASE 
               WHEN id - prev_id > 1 THEN 1
               ELSE 0
           END AS is_start,
           CASE 
               WHEN next_id - id > 1 THEN 1
               ELSE 0
           END AS is_end
    FROM Ranked
)
, 
GroupsWithNumber AS (
    SELECT *,
           SUM(is_start) OVER (ORDER BY id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS group_num
    FROM Segments
)



select id,visit_date,people from 
    (SELECT *,
    COUNT(id) OVER (PARTITION BY group_num) AS segment_length
    FROM GroupsWithNumber
    ORDER BY id) t2
where segment_length>=3

标签:段长度,lead,OVER,lag,ORDER,MySQL,id,SELECT
From: https://www.cnblogs.com/yhm138/p/17629694.html

相关文章

  • Go中flag用法
    flag包实现了命令行标志解析。使用flag.String(),Bool(),Int()等定义标志。这声明了一个整数标志-n,存储在指针nFlag中,类型为*int:import"flag"varnFlag=flag.Int("n",1234,"helpmessageforflagn")如果您愿意,您可以使用Var()函数将标志绑定到一个变量。......
  • Go语言中的flag
    Go语言的flag包提供了一个简单的方式来定义和解析命令行参数。以下是如何使用flag包的基本步骤和示例:1.定义参数使用flag包的相关函数来定义命令行参数。例如,你可以使用StringVar、IntVar和BoolVar来定义字符串、整数和布尔值参数。2.调用flag.Parse()这将解析......
  • 交换机M-LAG知识小结
    M-LAG(MultichassisLinkAggregationGroup)即跨设备链路聚合组,是一种实现跨设备链路聚合的机制,将一台设备与另外两台设备进行跨设备链路聚合,从而把链路可靠性从单板级提高到了设备级,组成双活系统M-LAG的作用:1、增加带宽:将成员交换机的多条物理链路配置成一个聚合组,提高交换机的上行......
  • Yocto SDK 修改环境加载脚本中的编译选项flags
    修改build/conf/local.conf,增加或者覆盖如下变量DEBUG_BUILD="0"DEBUG_FLAGS=""FULL_OPTIMIZATION="-O3-pipe"这些变量原始定义于poky/meta/conf/bitbake.conf609行附近......
  • 2023 *CTF flagfile
    flagfile格式文件是mgc,题目提示用file命令查看观察后,忽略有规律的,取出没规律的将红圈的数字异或,得到第一组数据这里发现后面是ffff,从这里隔开,异或的数据作为第二组异或的数据都将其转为十进制后,发现第二组可能是ascII编码,转化得到:f_o_a__lhy_s_y^^hete_ug___goo_t_第一......
  • 具备低功耗的S25FL256LAGMFM000、S25FL256LAGMFA003、S25FL256LAGMFA001(256Mb)NOR闪存
    FL-LNOR闪存系列具备低功耗和AEC-Q100汽车认证,并且能够在扩展温度范围内提供更高的读带宽和更快的编程速度。借助小巧、统一的4KB物理存储单元,该系列闪存产品能够以最佳方式存储程序代码和参数数据,是高级辅助驾驶系统(ADAS)、汽车仪表盘及信息娱乐系统、工业控制及智能工厂设备、网......
  • Jupyter Notebook 遇上 NebulaGraph,可视化探索图数据库
    在之前的《手把手教你用NebulaGraphAI全家桶跑图算法》中,除了介绍了ngai这个小工具之外,还提到了一件事有了JupyterNotebook插件:https://github.com/wey-gu/ipython-ngql,可以更便捷地操作NebulaGraph。本文就手把手教你咋在JupyterNotebook中,愉快地玩图数据库。只......
  • Jupyter Notebook 遇上 NebulaGraph,可视化探索图数据库
    在之前的《手把手教你用NebulaGraphAI全家桶跑图算法》中,除了介绍了ngai这个小工具之外,还提到了一件事有了JupyterNotebook插件:https://github.com/wey-gu/ipython-ngql,可以更便捷地操作NebulaGraph。本文就手把手教你咋在JupyterNotebook中,愉快地玩图数据库。只......
  • 使用 RKE 方式搭建 K8s 集群并部署 NebulaGraph
    本文由社区用户Albert贡献,首发于NebulaGraph论坛,旨在提供多一种的部署方式使用NebulaGraph。在本文,我将会详细地记录下我用K8s部署分布式图数据库NebulaGraph的过程。下面是本次实践的内容规划:一到十章节为K8s集群搭建过程;十一到十五章节为参考NebulaGraph官......
  • HtmlAgilityPack 网页数据抓取基础应用
    1vardoc=newHtmlAgilityPack.HtmlDocument();2stringhtml="";3doc.LoadHtml(html);4Func<HtmlAgilityPack.HtmlNodeCollection,string,Dictionary<string,string>,bool,List<Htm......