力扣刷MySQL-第八弹(详细讲解)- 有趣的电影

时间:2024-01-26 11:09:43

表:cinema

+----------------+----------+
| Column Name    | Type     |
+----------------+----------+
| id             | int      |
| movie          | varchar  |
| description    | varchar  |
| rating         | float    |
+----------------+----------+
id 是该表的主键(具有唯一值的列)。
每行包含有关电影名称、类型和评级的信息。
评级为 [0,10] 范围内的小数点后 2 位浮点数。

编写解决方案,找出所有影片描述为 非 boring (不无聊) 的并且 id 为奇数 的影片。

返回结果按 rating 降序排列。

结果格式如下示例。

示例 1:

输入:
+---------+-----------+--------------+-----------+
|   id    | movie     |  description |  rating   |
+---------+-----------+--------------+-----------+
|   1     | War       |   great 3D   |   8.9     |
|   2     | Science   |   fiction    |   8.5     |
|   3     | irish     |   boring     |   6.2     |
|   4     | Ice song  |   Fantacy    |   8.6     |
|   5     | House card|   Interesting|   9.1     |
+---------+-----------+--------------+-----------+
输出:
+---------+-----------+--------------+-----------+
|   id    | movie     |  description |  rating   |
+---------+-----------+--------------+-----------+
|   5     | House card|   Interesting|   9.1     |
|   1     | War       |   great 3D   |   8.9     |
+---------+-----------+--------------+-----------+
解释:
我们有三部电影,它们的 id 是奇数:1、3 和 5。id = 3 的电影是 boring 的,所以我们不把它包括在答案中。

要找出所有影片描述为非 boring 并且 id 为奇数的影片,并按照评分降序排列,我们可以使用 SQL 查询来解决这个问题。以下是具体的步骤:

  1. 筛选数据:首先,我们需要筛选出满足条件的数据,即描述为非 boring 并且 id 为奇数的电影。
SELECT id, movie, description, rating
FROM cinema
WHERE description <> 'boring' AND id % 2 = 1
  1. 排序结果:接下来,我们将上一步得到的结果按照评分 rating 进行降序排列。
ORDER BY rating DESC

因此,整个查询的 SQL 语句如下所示:

SELECT id, movie, description, rating
FROM cinema
WHERE description <> 'boring' AND id % 2 = 1
ORDER BY rating DESC

这条 SQL 查询将会返回所有满足条件的影片,并按照评分降序排列。根据给定的示例输入,该查询将返回评分最高的满足条件的影片。


希望对你有帮助!