题52:
根据下面三个表请你编写一组 SQL 查询:
(1)查找评论电影数量最多的用户名,如果出现平局,返回字典序较小的用户名。
(2)查找在 2020 年 2 月 平均评分最高的电影名称,如果出现平局,返回字典序较小的电影名称,查询分两行返回。
其中:
- Movies表:movie_id 是这个表的主键,title是电影的名字;
- Users表:user_id 是表的主键;
- MovieRating表:(movie_id, user_id) 是这个表的主键,这个表包含用户在其评论中对电影的评分 rating ,created_at 是用户的点评日期。
解题思路:
(1)根据user_id分组,将movie_id的个数相加,找到评论电影数量最多的用户名;
(2)再按照要求排序即可。
(3)在获取平均评分最高的电影,那就按照movie_id分组,求平均分即avg(rating);
(4)再按照要求排序即可。
(5)把(1)、(2)和(3)、(4)用union all将两个查询连接起来。