题解 | 输出播放量最高的视频

输出播放量最高的视频

https://www.nowcoder.com/practice/9e9cb264e1f64e28846975d5a32ba8e4

-- 核心思路如下:
-- 1.贪心相同视频id的时间区间
-- 2.可转化为统计各cid中,该cid对应的start_time被多少个[start_time,end_time]包含
-- 3.group by a.id, a.cid, a.start_time
-- 注意:这里要引入id来确定唯一一行记录
select 
    cid,
    round(cast(max(cnt) as float), 3) as max_peak_uv
from (
    select 
        a.cid,
        sum(if(a.start_time between b.start_time and b.end_time, 1, 0)) as cnt
    from play_record_tb a 
    join play_record_tb b on a.cid=b.cid
    group by a.id, a.cid, a.start_time
) t
group by cid
order by max_peak_uv desc 
limit 3

全部评论
这个group by的字段顺序好奇怪,group by a.cid,a.id比较合适
2 回复 分享
发布于 05-12 03:18 江西
请问为什么可以只检查开始时间点
1 回复 分享
发布于 09-25 20:05 广东
为什么不可以写on a.id=b.id
1 回复 分享
发布于 09-08 15:04 广东
甚至可以不 group by a.cid,反正 id 是 primary key
1 回复 分享
发布于 08-07 06:24 美国
请问大佬group by 里按id,和start_time 分组是为什么
1 回复 分享
发布于 04-26 21:02 江苏

相关推荐

2025年10月3日中午,在写完定时一年后发给自己的信之后,敲下键盘,写下这篇文字。我把标题的“所有人”加了引号,因为如我们所见,确实有的人顺风顺水,每天过的很开心,或是早早进入大厂,或是年纪轻轻就拿到了高薪offer,或是过着可能我努力十年也不一定实现的生活。但也许,不是每个人的痛苦都能被别人看到的,这个月我经常会哭,被骗6000块钱、手上钱不够导致拖欠房租、生活还要借朋友钱、国庆长假也没有钱去旅游,互联网公司不稳定担心试用期不过(毕竟上段实习就是被裁了,一有点风吹草动就害怕),但这样的我,不是所有人都知道的,居然是有些朋友的羡慕对象。回忆我的七年“长跑”别人都是多年幸福的恋爱长跑,我没有恋...
故事和酒66:让每一颗种子找到合适自己的生长方式,最终绽放出独一无二的花朵,这远比所有人都被迫长成同一棵“参天大树”的世界,更加美好和富有生机。这是社会和环境的问题,而不是我们的问题。然而就是在这样的环境中,楼主依然能突破自我,逆势成长,其中的艰辛可想而知。这一路的苦难终究会化作你成长的养料
你小时候最想从事什么职业
点赞 评论 收藏
分享
東大沒有派對:这是好事啊(峰哥脸
我的秋招日记
点赞 评论 收藏
分享
码农索隆:1.照片换成证件照。 2.专业技能写的太少了,太单薄了。 3.项目经历描写的太冗余,分成几点。 4.无实习经历,看看能不能包一个。
点赞 评论 收藏
分享
评论
28
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务