Medium之1341.电影评分***

此SQL查询旨在找出评论电影数量最多的用户及其名字,以及2020年2月平均评分最高的电影名称。在平局情况下,返回字典序较小的名字或电影名称。查询分为两个部分,第一部分找到评论最多的用户,第二部分找出2月平均评分最高的电影。
摘要由CSDN通过智能技术生成

表:Movies

Column NameType
movie_idint
titlevarchar

movie_id 是这个表的主键。
title 是电影的名字。

表:Users

Column NameType
user_idint
namevarchar
user_id 是表的主键。

表:Movie_Rating

Column NameType
movie_idint
user_idint
ratingint
created_atdate

(movie_id, user_id) 是这个表的主键。
这个表包含用户在其评论中对电影的评分 rating 。
created_at 是用户的点评日期。

问题

请你编写一组 SQL 查询:

查找评论电影数量最多的用户名。
如果出现平局,返回字典序较小的用户名。

查找在 2020 年 2 月 平均评分最高 的电影名称。
如果出现平局,返回字典序较小的电影名称。

查询分两行返回。

示例

Movies 表:

movie_idtitle
1Avengers
2Frozen 2
3Joker

Users 表:

user_idname
1Daniel
2Monica
3Maria
4James

Movie_Rating 表:

movie_iduser_idratingcreated_at
1132020-01-12
1242020-02-11
1322020-02-12
1412020-01-01
2152020-02-17
2222020-02-01
2322020-03-01
3132020-02-22
3242020-02-25

Result 表:

results
Daniel
Frozen 2

Daniel 和 Monica 都点评了 3 部电影(“Avengers”, “Frozen 2” 和 “Joker”) 但是 Daniel 字典序比较小。
Frozen 2 和 Joker 在 2 月的评分都是 3.5,但是 Frozen 2 的字典序比较小。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/movie-rating
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解答

(select name as results
from movie_rating as m
     left join 
     users u using(user_id)
group by m.user_id
order by count(*) desc,name
limit 1)
union
(select title as results
from movie_rating m1
     left join movies m2
     using(movie_id)
where date_format(created_at,'%Y-%m')= '2020-02'
group by m1.movie_id
order by avg(rating) desc,title
limit 1)

知识点:
一、group by 后直接跟order by 。

二、选择2020年2月表示方法:
1.date_format(created_at,‘%Y-%m’)= ‘2020-02’
2.created_at like ‘2020-02%’
3.left(created_at,7)=‘2020-02’

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值