leetcode-------mysql

打印 上一主题 下一主题

主题 990|帖子 990|积分 2970

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1341. 影戏评分 - 力扣(LeetCode)
表:Movies
  1. +---------------+---------+
  2. | Column Name   | Type    |
  3. +---------------+---------+
  4. | movie_id      | int     |
  5. | title         | varchar |
  6. +---------------+---------+
  7. movie_id 是这个表的主键(具有唯一值的列)。
  8. title 是电影的名字。
复制代码
表:Users
  1. +---------------+---------+
  2. | Column Name   | Type    |
  3. +---------------+---------+
  4. | user_id       | int     |
  5. | name          | varchar |
  6. +---------------+---------+
  7. user_id 是表的主键(具有唯一值的列)。
  8. 'name' 列具有唯一值。
复制代码
表:MovieRating
  1. +---------------+---------+
  2. | Column Name   | Type    |
  3. +---------------+---------+
  4. | movie_id      | int     |
  5. | user_id       | int     |
  6. | rating        | int     |
  7. | created_at    | date    |
  8. +---------------+---------+
  9. (movie_id, user_id) 是这个表的主键(具有唯一值的列的组合)。
  10. 这个表包含用户在其评论中对电影的评分 rating 。
  11. created_at 是用户的点评日期。
复制代码

请你编写一个办理方案:


  • 查找批评影戏数量最多的用户名。如果出现平手,返回字典序较小的用户名。
  • 查找在 February 2020 平均评分最高 的影戏名称。如果出现平手,返回字典序较小的影戏名称。
字典序 ,即按字母在字典中出现顺序对字符串排序,字典序较小则意味着排序靠前。
返回结果格式如下例所示。

示例 1:
  1. <strong>输入:</strong>
  2. Movies 表:
  3. +-------------+--------------+
  4. | movie_id    |  title       |
  5. +-------------+--------------+
  6. | 1           | Avengers     |
  7. | 2           | Frozen 2     |
  8. | 3           | Joker        |
  9. +-------------+--------------+
  10. Users 表:
  11. +-------------+--------------+
  12. | user_id     |  name        |
  13. +-------------+--------------+
  14. | 1           | Daniel       |
  15. | 2           | Monica       |
  16. | 3           | Maria        |
  17. | 4           | James        |
  18. +-------------+--------------+
  19. MovieRating 表:
  20. +-------------+--------------+--------------+-------------+
  21. | movie_id    | user_id      | rating       | created_at  |
  22. +-------------+--------------+--------------+-------------+
  23. | 1           | 1            | 3            | 2020-01-12  |
  24. | 1           | 2            | 4            | 2020-02-11  |
  25. | 1           | 3            | 2            | 2020-02-12  |
  26. | 1           | 4            | 1            | 2020-01-01  |
  27. | 2           | 1            | 5            | 2020-02-17  |
  28. | 2           | 2            | 2            | 2020-02-01  |
  29. | 2           | 3            | 2            | 2020-03-01  |
  30. | 3           | 1            | 3            | 2020-02-22  |
  31. | 3           | 2            | 4            | 2020-02-25  |
  32. +-------------+--------------+--------------+-------------+
  33. <strong>输出:</strong>
  34. Result 表:
  35. +--------------+
  36. | results      |
  37. +--------------+
  38. | Daniel       |
  39. | Frozen 2     |
  40. +--------------+
  41. <strong>解释:</strong>
  42. Daniel 和 Monica 都点评了 3 部电影("Avengers", "Frozen 2" 和 "Joker") 但是 Daniel 字典序比较小。
  43. 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);
  

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

千千梦丶琪

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表