每日一题-58(没有广告的剧集)

题58:

根据下面两个表请查出,所有没有广告出现过的剧集。如果观众观看了剧集,并且剧集里出现了广告,就一定会有观众观看广告的记录。
在这里插入图片描述
其中:

  • Playback表:session_id (剧集id)是主键,customer_id 是观看该剧集的观众id,集播放时间包含start_time(开始时间) 及 end_time(结束时间),可以保证的是,start_time(开始时间)<= end_time(结束时间),一个观众观看的两个剧集的时间不会出现重叠。
  • Ads表:ad_id(广告id)是主键,customer_id 为 观看广告的用户id,timestamp 表示广告出现的时间点。

解题思路:
(1)先找出现在剧集中的广告的session_id,where p.start_time <= a.timestamp and a.timestamp <= p.end_time
(2)然后在父查询中用where去除全部剧集里出现过广告的。

select session_id
from Playback
where session_id not in (
select DISTINCT p.session_id
from  Playback p
left join Ads a ON p.customer_id = a.customer_id
where p.start_time <= a.timestamp and a.timestamp <= p.end_time);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值