题解 | #每类视频近一个月的转发量/率#
每类视频近一个月的转发量/率
https://www.nowcoder.com/practice/a78cf92c11e0421abf93762d25c3bfad
select tag,sum(if_retweet) retweet_cut,round(avg(if_retweet),3) retweet_rate
from tb_user_video_log tuvl join tb_video_info tvi on tuvl.video_id = tvi.video_id
where timestampdiff(day,date(start_time),date((select max(start_time) from tb_user_video_log)))<=29
group by tag
order by retweet_rate desc
//where 后面不能使用分组函数,所以要获得start-time最大值只能使用子查询,在子查询中调用max(),
TIMESTAMPDIFF函数返回begin-end的结果,其中begin和end是DATE或DATETIME表达式,所以如果调用参数不对时,待用date()或者datetime()修改。
TIMESTAMPDIFF函数允许其参数具有混合类型,例如,begin是DATE值,end可以是DATETIME值。 如果使用DATE值,则TIMESTAMPDIFF函数将其视为时间部分为“00:00:00”的DATETIME值。
unit参数是确定(end-begin)的结果的单位,表示为整数。 以下是有效单位:
- MICROSECOND
- SECOND
- MINUTE
- HOUR
- DAY
- WEEK
- MONTH
- QUARTER
- YEAR
查看17道真题和解析