select cid, round(cast(count(*) as float), 3) as pv, row_number() over(order by count(*) desc, release_date desc) as rk from play_record_tb join course_info_tb using(cid) group by 1, uid, release_date having count(*) > 1 limit 3
用 limit 可以少用一个子查询
直接把 count 写在窗口函数里面,又可以省一个子查询
用 cast 把整数数值强转成浮点数或者双精度(float 或者 double),就可以设置小数位数了



京公网安备 11010502036488号