Почему значение 1 выводится для каждой строки в рейтинге продаж? - PullRequest
0 голосов
/ 26 сентября 2018

Я знаю, чтобы оценить его по продажам, я могу просто удалить раздел;но что делает функция разбиения, при которой все значения ранга будут выводиться как 1?

select
trunc(sales_date,'MON') as sales_month,
sum(sales_amount) as Monthly_Sales,
rank() over (partition by trunc (sales_date,'MON') order by sum(sales_amount) desc) as Sales_Rank
from s
group by trunc(sales_date,'MON')
order by 1;


SALES_MON MONTHLY_SALES SALES_RANK
--------- ------------- ----------
01-JAN-15          5600          1
01-FEB-15         50880          1
01-MAR-15        126120          1
01-APR-15        118320          1
01-MAY-15          2280          1

Ответы [ 2 ]

0 голосов
/ 26 сентября 2018

Разделение по создает группу для ваших данных в запросе.В своем запросе вы разделили, т.е. сгруппировали данные по месяцам за ранги.Так что это показывает как 1 для каждой строки, и вы уже сгруппировали свои данные.

0 голосов
/ 26 сентября 2018

У вас есть только одна запись в каждом месяце.Вы начинаете перечисление рейтинга с каждого месяца, так что вы получаете ровно «1» для каждого ранга.

Так работает partition by.Перезапускает перечисление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...