在我的查询中,我选择了当前的贷款余额。我还创建了一个列,它返回每个贷款余额所属的五分之一。
我用过这句话
NTILE(5) OVER (ORDER BY CurrLoanBal)
从这里开始,如何返回每个五分位数的最小值和最大值?我不想将任何行分组,我希望每一行显示该特定五分位数的最小值和最大值。
答案 0 :(得分:0)
您需要使用聚合函数和分区
select s.col1, s.col2, ... s.colN,
max(s.col1) over (partition by s.col2, ... ),
min(s.col1) over (partition by s.col2, ... )
from stuff as s;
其中您的partition by子句决定如何对数据进行分区(“分组”),而不对分组进行分组。这样,窗口函数将应用于每个分区,以便为您提供所需的数据。
逐位分区中的列确定行的分区方式(在您的情况下,将一个五分之一与五分之一分开)。
有关详细信息,请参阅https://msdn.microsoft.com/en-us/library/ms189461.aspx。