选择两列不同的最大值
问题描述:
I have the following table named 'MoviesInStock'选择两列不同的最大值
我想选择上个月的最新电影。 在这种情况下,结果应该只是电影“木乃伊”,因为他是最新的。
我试图在下一个查询:
SELECT MovieName
FROM MovieInStock
WHERE Month = (SELECT MAX(Month) FROM MovieInStock) AND
(SELECT MovieName FROM MovieInStock WHERE Year = (SELECT MAX(Year) FROM MovieInStock))
但是选择与运营商并没有那么聪明。我也在尝试使用SELECT INTO #
来创建一个临时表格,用于选择Max Year,然后在临时表格上选择Max Month,但这对我来说变得很复杂。
答
您正在过度复杂的问题。您可以使用TOP
和ORDER BY
。
因为你说的“电影”:
select top (1) with ties mis.*
from movieinstock mis
order by year desc, month desc
+0
正确。下次我可能应该更简单一些。 –
答
其他的解决办法,但更好的是戈登解决方案
with maxdt as (
select MAX(Month) MaxMonth, MAX(Year) MaxYear FROM MovieInStock
)
SELECT top 1 MovieName
FROM MovieInStock f1
inner join maxdt f2 on f1.Month=f2.MaxMonth and f1.Year=MaxYear
编辑你的问题,并提供样本数据和预期的结果。 –