2016-01-24 73 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

謝謝!這正是我想要的。 –