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
相关推荐
Decay__3 小时前
09_MySQL 闪回与时间点恢复 —— binlog 回放、mysqlbinlog、PITR 与误删恢复
运维·数据库·sql·mysql·架构
梦影_5 小时前
MySQL进阶教程(五)—— SQL调优(下)
android·大数据·数据库·后端·sql·mysql·database
呆萌很11 小时前
达梦(DM8)数据库常用SQL
数据库·sql
跟太阳说早安11 小时前
极简数据库SQL
数据库·sql
凤凰院凶涛QAQ12 小时前
《MySQL内核拆解:从SQL到InnoDB》(三) : 数据库设计 & 聚合查询 & 分组查询
数据库·sql·mysql
Decay__13 小时前
01_MySQL 体系架构全解 —— 连接层、SQL 层、存储引擎层与 InnoDB 深入
运维·数据库·sql·mysql·架构
liminla!1 天前
SQL 从入门到进阶:语法速查与实战练习(完整优化版)
数据库·sql·算法
l1t1 天前
DeepSeek总结的五分钟测试:Ted Dunning 谈 DuckDB 为何让分析更轻松
数据库·sql·duckdb
TangGeeA1 天前
数据库、SQL 与 DB AI
数据库·人工智能·sql
roman_日积跬步-终至千里2 天前
数仓开发的三层责任:业务定义、模型设计与 SQL 实现
数据库·数据仓库·sql·数据建模