collection 中最昂贵的电影)的成本是多少?
What was the cost for the most expensive movie(s) in the collection?
大家好,我知道放映最昂贵电影的代码,但放映最贵电影和紧随其后的电影的代码是什么?我想这就是问题所在。这是我为一部电影获得的代码。
SELECT *
FROM movie
WHERE purchase_price =
(SELECT MAX(purchase_price) FROM movie);
按价格对它们进行排名(在子查询中),并获取前两个。像这样:
select *
from (select m.*,
rank() over (order by m.purchase_price desc) rnk
from movie m
)
where rnk <= 2
根据您拥有的数据,您还可以考虑使用 ROW_NUMBER
或 DENSE_RANK
分析函数。
如果您确实想要两部最昂贵的电影,您可以对查询进行排序并使用 fetch first
子句:
SELECT *
FROM movie
ORDER BY purchase_price DESC
FETCH FIRST 2 ROWS ONLY
如果多部电影可以有相同的价格,而你想找到所有价格最高的两部电影,你可以使用dense_rank
window函数:
SELECT *
FROM (SELECT *, DENSE_RANK() OVER (ORDER BY purchase_price DESC) AS rk
FROM movie) m
WHERE rk <= 2
既然你的描述有点含糊,要找到你喜欢的解决方案,你将不得不尝试其中的几个。
例如,您可以尝试使用 ORDER BY 条件。使用此条件,您将检索所有电影,从顶部最昂贵的电影开始。
SELECT
*
FROM
movie
ORDER BY
purchase_price DESC;
FETCH FIRST 2 ROWS ONLY
不过,您还可以尝试其他解决方案。您可以在子查询中按价格对它们进行排名,然后获取所有答案。另一个例子是在最大值和最小值(或任何其他值)之间使用。您可以获得一些技术含量更高且更难实施的解决方案。
我宁愿使用 FETCH FIRST 2 ROWS WITH TIES
选项,它会为您提供前两部最昂贵的电影,并且还会处理多部购买价格相同的电影
SELECT *
FROM movie
ORDER BY purchase_price DESC
FETCH FIRST 2 ROWS ONLY TIES;
大家好,我知道放映最昂贵电影的代码,但放映最贵电影和紧随其后的电影的代码是什么?我想这就是问题所在。这是我为一部电影获得的代码。
SELECT *
FROM movie
WHERE purchase_price =
(SELECT MAX(purchase_price) FROM movie);
按价格对它们进行排名(在子查询中),并获取前两个。像这样:
select *
from (select m.*,
rank() over (order by m.purchase_price desc) rnk
from movie m
)
where rnk <= 2
根据您拥有的数据,您还可以考虑使用 ROW_NUMBER
或 DENSE_RANK
分析函数。
如果您确实想要两部最昂贵的电影,您可以对查询进行排序并使用 fetch first
子句:
SELECT *
FROM movie
ORDER BY purchase_price DESC
FETCH FIRST 2 ROWS ONLY
如果多部电影可以有相同的价格,而你想找到所有价格最高的两部电影,你可以使用dense_rank
window函数:
SELECT *
FROM (SELECT *, DENSE_RANK() OVER (ORDER BY purchase_price DESC) AS rk
FROM movie) m
WHERE rk <= 2
既然你的描述有点含糊,要找到你喜欢的解决方案,你将不得不尝试其中的几个。 例如,您可以尝试使用 ORDER BY 条件。使用此条件,您将检索所有电影,从顶部最昂贵的电影开始。
SELECT
*
FROM
movie
ORDER BY
purchase_price DESC;
FETCH FIRST 2 ROWS ONLY
不过,您还可以尝试其他解决方案。您可以在子查询中按价格对它们进行排名,然后获取所有答案。另一个例子是在最大值和最小值(或任何其他值)之间使用。您可以获得一些技术含量更高且更难实施的解决方案。
我宁愿使用 FETCH FIRST 2 ROWS WITH TIES
选项,它会为您提供前两部最昂贵的电影,并且还会处理多部购买价格相同的电影
SELECT *
FROM movie
ORDER BY purchase_price DESC
FETCH FIRST 2 ROWS ONLY TIES;