select t.name,count(*) as 合计 from (select f.film_id ,f.description,c.category_id,c.name,count(f.film_id) over(partition by c.category_id) as 分类数量 from film as f left join film_category as fc on fc.film_id=f.film_id join category as c on c.category_id=fc.category_id) as t where t.description like '%robot%' and 分类数量>=5;
还是考察表连接的问题:
以film表为主表,三个表相连,运用开窗函数算出每个分类的数量生成单独一列。
再把这个结果表当成t表进行查询即可;