题解 | #查找描述信息中包含robot的电影对应的分类名称以及电影数目,而且还需要该分类对应电影数量>=5部#

查找描述信息中包含robot的电影对应的分类名称以及电影数目,而且还需要该分类对应电影数量>=5部

http://www.nowcoder.com/practice/3a303a39cc40489b99a7e1867e6507c5

题目本身不难,难点在读懂题意

查找描述信息(film.description)中包含robot的电影对应的分类名称(category.name)以及电影数目(count(film.film_id)),还需要该分类包含电影总数量(count(film_category.category_id))>=5部

题意可以说是相当具有迷惑性了,加粗的部分这个字段的聚合明显和文字描述不是一个意思

此外要注意的一点是,这个条件是该分类包含的电影总数量大于等于5部,而不是该分类包含robot的电影数量大于5部,所以两个条件应该并列在where后,而不是一个where一个having的递进关系

由于where后不能直接加count聚合函数,所以首先子查询筛选出电影总数量大于5部的类别

select category_id
from film_category
group by category_id
having count(film_id)>=5

接下来就顺理成章的连接查询即可

select category.name, count(film.film_id)
from film 
join film_category fc
on film.film_id = fc.film_id
join category
on category.category_id = fc.category_id
where description like '%robot%'
and fc.category_id in 
    (
    select category_id
    from film_category
    group by category_id
    having count(film_id)>=5
    )
group by category.name;
全部评论

相关推荐

头像
11-09 17:30
门头沟学院 Java
TYUT太摆金星:我也是,好几个华为的社招找我了
点赞 评论 收藏
分享
10-30 10:16
南京大学 Java
龚至诚:给南大✌️跪了
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务