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);

相关推荐
博哥爱吃肉14 分钟前
第2篇_Go语言基础语法_变量常量与数据类型
开发语言·算法·golang
Xの哲學3 小时前
TCP 连接管理:深入分析四次握手与三次挥手
网络·网络协议·算法
华清远见成都中心6 小时前
基于深度学习的异常检测算法在时间序列数据中的应用
人工智能·深度学习·算法
এ᭄画画的北北7 小时前
力扣-347.前K个高频元素
算法·leetcode
独行soc9 小时前
2025年大模型安全岗的面试汇总(题目+回答)
android·人工智能·安全·面试·职场和发展·渗透测试
月殇_木言10 小时前
算法基础 第3章 数据结构
数据结构·算法
亮亮爱刷题10 小时前
算法提升之树上问题-(LCA)
数据结构·算法·leetcode·深度优先
火车叨位去194911 小时前
力扣top100(day03-01)--二叉树 03
算法·leetcode·职场和发展
岁忧11 小时前
(LeetCode 每日一题) 1780. 判断一个数字是否可以表示成三的幂的和 (数学、三进制数)
java·c++·算法·leetcode·职场和发展·go
浩少70212 小时前
LeetCode-16day:栈
java·数据结构·算法