leetcode-------mysql

1341. 电影评分 - 力扣(LeetCode)

表:Movies

复制代码
+---------------+---------+
| Column Name   | Type    |
+---------------+---------+
| movie_id      | int     |
| title         | varchar |
+---------------+---------+
movie_id 是这个表的主键(具有唯一值的列)。
title 是电影的名字。

表:Users

复制代码
+---------------+---------+
| Column Name   | Type    |
+---------------+---------+
| user_id       | int     |
| name          | varchar |
+---------------+---------+
user_id 是表的主键(具有唯一值的列)。
'name' 列具有唯一值。

表:MovieRating

复制代码
+---------------+---------+
| Column Name   | Type    |
+---------------+---------+
| movie_id      | int     |
| user_id       | int     |
| rating        | int     |
| created_at    | date    |
+---------------+---------+
(movie_id, user_id) 是这个表的主键(具有唯一值的列的组合)。
这个表包含用户在其评论中对电影的评分 rating 。
created_at 是用户的点评日期。 

请你编写一个解决方案:

  • 查找评论电影数量最多的用户名。如果出现平局,返回字典序较小的用户名。
  • 查找在 February 2020平均评分最高 的电影名称。如果出现平局,返回字典序较小的电影名称。

字典序 ,即按字母在字典中出现顺序对字符串排序,字典序较小则意味着排序靠前。

返回结果格式如下例所示。

示例 1:

复制代码
输入:
Movies 表:
+-------------+--------------+
| movie_id    |  title       |
+-------------+--------------+
| 1           | Avengers     |
| 2           | Frozen 2     |
| 3           | Joker        |
+-------------+--------------+
Users 表:
+-------------+--------------+
| user_id     |  name        |
+-------------+--------------+
| 1           | Daniel       |
| 2           | Monica       |
| 3           | Maria        |
| 4           | James        |
+-------------+--------------+
MovieRating 表:
+-------------+--------------+--------------+-------------+
| movie_id    | user_id      | rating       | created_at  |
+-------------+--------------+--------------+-------------+
| 1           | 1            | 3            | 2020-01-12  |
| 1           | 2            | 4            | 2020-02-11  |
| 1           | 3            | 2            | 2020-02-12  |
| 1           | 4            | 1            | 2020-01-01  |
| 2           | 1            | 5            | 2020-02-17  | 
| 2           | 2            | 2            | 2020-02-01  | 
| 2           | 3            | 2            | 2020-03-01  |
| 3           | 1            | 3            | 2020-02-22  | 
| 3           | 2            | 4            | 2020-02-25  | 
+-------------+--------------+--------------+-------------+
输出:
Result 表:
+--------------+
| results      |
+--------------+
| Daniel       |
| Frozen 2     |
+--------------+
解释:
Daniel 和 Monica 都点评了 3 部电影("Avengers", "Frozen 2" 和 "Joker") 但是 Daniel 字典序比较小。
Frozen 2 和 Joker 在 2 月的评分都是 3.5,但是 Frozen 2 的字典序比较小。

Write your MySQL query statement below

(SELECT u.name AS results

FROM Users u

LEFT JOIN MovieRating mr ON u.user_id = mr.user_id

GROUP BY u.user_id

ORDER BY COUNT(*) DESC, name ASC

LIMIT 1)

UNION ALL

(SELECT title AS results

FROM Movies m

LEFT JOIN MovieRating mr ON m.movie_id = mr.movie_id AND YEAR(mr.created_at) = 2020 AND MONTH(mr.created_at) = 2

GROUP BY mr.movie_id

ORDER BY AVG(mr.rating) DESC, title

LIMIT 1);

相关推荐
The_cute_cat3 分钟前
试除法判断素数优化【C语言】
算法
Darkwanderor21 分钟前
一般枚举题目合集
c++·算法
@我漫长的孤独流浪1 小时前
最短路与拓扑(2)
数据结构·c++·算法
程序员三藏1 小时前
软件测试之功能测试详解
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例
<但凡.2 小时前
C++修炼:多态
开发语言·c++·算法
买了一束花2 小时前
数据预处理之数据平滑处理详解
开发语言·人工智能·算法·matlab
小雅痞2 小时前
[Java][Leetcode simple]26. 删除有序数组中的重复项
java·leetcode
YuforiaCode2 小时前
LeetCode 热题 100 35.搜索插入位置
数据结构·算法·leetcode
Jasmine_llq3 小时前
《P4391 [BalticOI 2009] Radio Transmission 无线传输 题解》
算法·字符串·substr
水水沝淼㵘4 小时前
嵌入式开发学习日志(数据结构--单链表)Day20
c语言·开发语言·数据结构·学习·算法