题解 | #平均播放进度大于60%的视频类别#
平均播放进度大于60%的视频类别
http://www.nowcoder.com/practice/c60242566ad94bc29959de0cdc6d95ef
这题运用了许多的函数:
- Case搜索函数 CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END (注释:列名,这里是sex,如果放在when后,若是不为整个CASE WHEN语句写个别名的话,则显示在屏幕上的列名即为整个CASE WHEN语句)
case when"" then“” else“其他” end #结束
2.因为是百分比格式,所以要用拼接函数concat
3.时间差函数语法:timestampdiff(interval, datetime1,datetime2)
结果:返回(时间2-时间1)的时间差,结果单位由interval参数给出。
| 名称 | 含义 |
|---|---|
| second | 秒 |
| minute | 分钟 |
| ... | ... |
select tag,#百分比格式,使用拼接函数concat
concat(round(avg(case when timestampdiff(second,start_time,end_time)>=duration then 1
#timestampdiff时间差函数,second表示秒
#case when then else end
else timestampdiff(second,start_time,end_time)/duration end)*100,2),'%') as avg_play_progress
from tb_user_video_log t
inner join tb_video_info f
on t.video_id = f.video_id
group by tag
having avg_play_progress > 60
order by avg_play_progress desc
查看13道真题和解析