力扣1809 没有广告的剧集(postgresql)

需求

Table: Playback

±------------±-----+

| Column Name | Type |

±------------±-----+

| session_id | int |

| customer_id | int |

| start_time | int |

| end_time | int |

±------------±-----+

该表主键为:session_id (剧集id)

customer_id 是观看该剧集的观众id

剧集播放时间包含start_time(开始时间) 及 end_time(结束时间)

可以保证的是,start_time(开始时间)<= end_time(结束时间),一个观众观看的两个剧集的时间不会出现重叠。

Table: Ads

±------------±-----+

| Column Name | Type |

±------------±-----+

| ad_id | int |

| customer_id | int |

| timestamp | int |

±------------±-----+

该表的主键为:ad_id(广告id)

customer_id 为 观看广告的用户id

timestamp 表示广告出现的时间点

请查出,所有没有广告出现过的剧集。

如果观众观看了剧集,并且剧集里出现了广告,就一定会有观众观看广告的记录。

返回结果没有顺序要求。

输入

输出

sql 复制代码
with t1 as (
-- 两表左外连接,筛选出广告时间在剧集时间之外的数据
select session_id,a.customer_id,start_time,end_time,ad_id,timestamp
from playback p left join ads a
on p.customer_id = a.customer_id
and (timestamp<start_time or timestamp>end_time)
)
-- 排除掉上步查询结果为空的数据,对求出来的剧集id去重
select distinct session_id
from t1
where timestamp notnull ;
相关推荐
minji...2 分钟前
MySQL数据库 (二) 库的操作(增删查改),库的字符集和校验集,数据库的备份与恢复
数据库·mysql数据库·字符集·库的增删查改·校验集·数据的备份·数据的恢复
青梅橘子皮7 分钟前
Linux---虚拟地址空间
linux·运维·算法
前端与小赵7 分钟前
数据库交互全链路实战:通用封装、批量优化与动态查询三大核心模块
数据库·python·sql
KaMeidebaby8 分钟前
卡梅德生物技术快报|酵母表达系统工程:裂殖酵母穿梭载体分子改造与载体构建技术总结
网络·人工智能·网络协议·tcp/ip·算法
六月雨滴9 分钟前
SQL 优化
sql·oracle·dba
HZ·湘怡11 分钟前
二叉树 1
数据结构·算法·二叉树·
霸道流氓气质12 分钟前
异步任务提交 + Redis 状态轮询模式实战指南
数据库·redis·缓存
GEO_youxuan14 分钟前
2026年自定义报表工具推荐:五家优选品牌专业深度评测
数据库
mN9B2uk1714 分钟前
数据库性能优化三:程序操作优化
数据库
霸道流氓气质22 分钟前
Spring Boot + Jasypt 实战指南:配置文件敏感信息加密完全手册
数据库·spring boot·oracle