使用sum+ case when函数能就能解决,不过如果是count 配合case when比较容易出错 select user.video_id, round(sum(case when (end_time-start_time)>=duration then 1 else 0 end )/count(*),3) as avg_comp_play_rate from tb_user_video_log user join tb_video_info vid on user.video_id=vid.video_id where year(start_...