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
相关推荐
百***75747 小时前
从 SQL 语句到数据库操作
数据库·sql·oracle
i***39587 小时前
SQL 注入详解:原理、危害与防范措施
数据库·sql·oracle
舒一笑13 小时前
信息的建筑学:MyBatis Log Panda 如何重构开发者的认知地图
后端·sql·intellij idea
core51215 小时前
不借助框架实现Text2SQL
sql·mysql·ai·大模型·qwen·text2sql
张人玉17 小时前
SQLite 快速入门 Cheat Sheet
数据库·sql·sqlite
DarkAthena17 小时前
【DuckDB】活用marco以兼容GaussDB的SQL执行
数据库·sql·duckdb
x***010618 小时前
SQL 注入漏洞原理以及修复方法
网络·数据库·sql
q***318919 小时前
mysql 迁移达梦数据库出现的 sql 语法问题 以及迁移方案
数据库·sql·mysql
Gauss松鼠会21 小时前
【openGauss】OPENGAUSS/POSTGRESQL 中float类型到int类型的隐式转换
数据库·sql·database·opengauss