题解 | #查找描述信息中包含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

根据题目要求进行拆分:
1、查找出film.description中包含robot电影对应的分类名称

select
        f.film_id,     # film_id 用于count(film.film_id)
        fc.category_id  
from 
        film f
join
        film_category as fc
on f.film_id = fc.film_id
where 
        description like '%robot%'

2、考虑到需要name字段,根据1的查找结果与category表进行连接,获取计数结果

select
  ca.name,
  count(t.film_id)
from  
      (select
        f.film_id,
        fc.category_id  
      from 
        film f
      join
        film_category as fc
      on f.film_id = fc.film_id
      where 
        description like '%robot%') as t
join category as ca
on ca.category_id = t.category_id
group by ca.name

3、注意后续条件限制,需要在该分类中电影总数量大于等于5,因此需要先找出该分类

select
     c.category_id  
from film_category as fc   
join film as f
on f.film_id = fc.film_id
join category as c
on fc.category_id = c.category_id
group by c.category_id
having count(*) >= 5

4、最后,根据2,结合3使用where进行的条件筛选,即获得最终结果

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

相关推荐

程序员牛肉:主要是因为小厂的资金本来就很吃紧,所以更喜欢有实习经历的同学。来了就能上手。 而大厂因为钱多,实习生一天三四百的就不算事。所以愿意培养你,在面试的时候也就不在乎你有没有实习(除非是同级别大厂的实习。) 按照你的简历来看,同质化太严重了。项目也很烂大街。 要么换项目,要么考研。 你现在选择工作的话,前景不是很好了。
点赞 评论 收藏
分享
uu们,拒offer时hr很生气怎么办我哭死
爱睡觉的冰箱哥:人家回收你的offer,或者oc后没给你发offer的时候可不会愧疚你,所以你拒了也没必要愧疚他。
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务