当我试图在一个也使用rank函数的选择结果集上使用rank函数时,我正面临一些与rank函数有关的问题。
sql查询示例:
select a,b,c,
rank() over (partition by d order by d desc) as r_outer
from(
select a,b,c,d from(
select a,b,c,d,
rank() over (partition by e order by e desc) as r_inner
from sample
)where r_inner=1
);
问题:
当我使用上面的查询时,我每次都得到r_outer结果为'1',尽管d的值不同。
样本数据:
<表类>B C D E tbody><<tr>A1 B1 C1 1 1 A1B1 C1 2 1 表类>
我不知道你试图完成什么,但是这个逻辑:
rank() over (partition by d order by d desc)
总是返回1
。只有1
。为什么?"order by
"键与"partition by
"键相同。因此,每个分区中只有一个值。并且单个值的秩总是1
也许你想:
rank() over (order by d desc)
然而,这实际上只是一个猜测,因为你的问题没有提供足够的信息来了解你的意图。