表:
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 查询来解决这个问题。以下是具体的步骤:
- 筛选数据:首先,我们需要筛选出满足条件的数据,即描述为非 boring 并且 id 为奇数的电影。
SELECT id, movie, description, rating FROM cinema WHERE description <> 'boring' AND id % 2 = 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 查询将会返回所有满足条件的影片,并按照评分降序排列。根据给定的示例输入,该查询将返回评分最高的满足条件的影片。
希望对你有帮助!