2016-01-24 15 views
0

В моем запросе я выбираю текущие остатки кредитов. Я также создал столбец, который возвращает, к какой квинтилям относится каждый баланс кредита.SQL - Как вернуть минимальные и максимальные значения для каждого квинтиля

Я использовал это заявление

NTILE(5) OVER (ORDER BY CurrLoanBal) 

Отсюда, как мне вернуть минимальное и максимальное значения для каждого квинтилю? Я не хочу группировать строки, я хочу, чтобы каждая строка показывала min и max для этого конкретного квинтиля.

+1

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

ответ

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; 

где ваш раздел пунктом решает, каким образом данные разделены («сгруппированы») без группировки его так же, как группа по бы. Таким образом, функции окна применяются к каждому разделу, чтобы предоставить вам нужные данные.

Столбцы в разделе по биту определяют, как строки разбиты на разделы (что отделяет один квинтиль от другого в вашем случае).

Для получения дополнительной информации см. https://msdn.microsoft.com/en-us/library/ms189461.aspx.

+0

Спасибо! Это именно то, чего я хотел. –

Смежные вопросы