SQL189 牛客直播各科目同时在线人数

SQL189 牛客直播各科目同时在线人数

参考相似题目:SQL88 输出播放量最高的视频-CSDN博客

思路完全一样。。

sql 复制代码
WITH
    -- 生成所有事件点(开始+1,结束-1)
    events AS (
        SELECT
            course_id,
            in_datetime AS event_time,
            1 AS event_type
        FROM
            attend_tb
        UNION ALL
        SELECT
            course_id,
            out_datetime AS event_time,
            -1 AS event_type
        FROM
            attend_tb
    ),
    -- 按时间排序并计算累计同时播放数
    running_counts AS (
        SELECT
            course_id,
            event_time,
            SUM(SUM(event_type)) OVER (
                PARTITION BY
                    course_id
                ORDER BY
                    event_time ROWS UNBOUNDED PRECEDING
            ) AS concurrent_play
        FROM
            events
        GROUP BY
            course_id,
            event_time
    ),
    -- 找出每个视频的最大同时播放数
    max_concurrent AS (
        SELECT
            course_id,
            MAX(concurrent_play) AS max_num
        FROM
            running_counts
        GROUP BY
            course_id
    )
SELECT
    course_id,
    course_name,
    max_num
FROM
    max_concurrent
    join course_tb using (course_id)
ORDER BY
    course_id
相关推荐
kejiayuan3 小时前
CTE更易懂的SQL风格
数据库·sql
PyHaVolask4 小时前
SQL注入漏洞原理
数据库·sql
l1t6 小时前
DeepSeek辅助编写的利用位掩码填充唯一候选数方法求解数独SQL
数据库·sql·算法·postgresql
冰暮流星7 小时前
sql语句之select语句的基本使用
数据库·sql·mysql
霖霖总总9 小时前
[小技巧15]深入解读 MySQL sql_mode:从原理到实践,规避常见坑
sql·mysql
菩提小狗9 小时前
SQL注入之sqlmap|web安全|渗透测试|网络安全
数据库·sql·web安全
m0_5981772310 小时前
SQL核心(1)
数据库·sql
DarkAthena10 小时前
【GaussDB】数据静止状态下同一个SQL或同一个存储过程执行第6次报错的问题排查
数据库·sql·gaussdb
l1t10 小时前
郭其先生利用DeepSeek实现的PostgreSQL递归CTE实现DFS写法
sql·算法·postgresql·深度优先
尽兴-10 小时前
MySQL 中一条 SQL 的执行流程详解
sql·mysql·adb·dba