2016-01-24 61 views
0

在我的查询中,我选择了当前的贷款余额。我还创建了一个列,返回每个贷款余额所属的五分位数。SQL - 如何返回每个五分位数的最小值和最大值

我用这个语句

NTILE(5) OVER (ORDER BY CurrLoanBal) 

从这里,我怎么回每个五分之一的最小值和最大值?我不想分组任何行,我希望每行都显示特定五分位数的最小值和最大值。

+1

http://sqlfiddle.com/#!3/50d40/6 –

回答

0

您需要在您的分区by子句决定如何将数据分割(“分组”),不进行分组同样的方式一组通过将使用聚合函数和分区

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; 

。这样窗口函数就会应用到每个分区,为您提供所需的数据。

分区中的列按位确定行的分区方式(在您的情况下,将五分位数与另一个五分位数分隔开)。

查看https://msdn.microsoft.com/en-us/library/ms189461.aspx了解更多信息。

+0

谢谢!这正是我想要的。 –