为什么我不能在 where 语句中使用行号? [重复]

问题描述 投票:0回答:1

在下面的CTE中,在它之外,我尝试使用RowNum,但它不被识别。

;with cte as(
select *
,min([Close]) OVER(PARTITION BY YEAR(Date),Crypto) AS 'Min'
,max([Close]) OVER(PARTITION BY YEAR(Date),Crypto) AS 'Max'
from Crypto
)
select [Crypto], [Date],
CASE (min([Close]) OVER(PARTITION BY YEAR(Date),Crypto)) WHEN [Close] 
THEN (min([Close]) OVER(PARTITION BY YEAR(Date),Crypto)) END as Min,
CASE (max([Close]) OVER(PARTITION BY YEAR(Date),Crypto)) WHEN [Close] 
THEN (max([Close]) OVER(PARTITION BY YEAR(Date),Crypto)) END as Max,
RowNum  = row_number() OVER(PARTITION BY YEAR(Date),Crypto, 'Min' ORDER BY YEAR(Date) desc)
from cte
where  ([Close] = Min  or [Close] = Max) and TowNum < 3

我不知道问题出在哪里。

sql common-table-expression row-number
1个回答
0
投票
where  ([Close] = Min  or [Close] = Max) and TowNum < 3

我认为您在最后一行将“RowNum”错误拼写为“TowNum”。

你是对的,拼写错误,但我改正后还是不行。

© www.soinside.com 2019 - 2024. All rights reserved.