Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Ранжирование без аналитических функций. / 7 сообщений из 7, страница 1 из 1
13.06.2019, 12:52
    #39826098
vgpframed
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ранжирование без аналитических функций.
Доброго времени суток, дорогие форумчане!
Подскажите, пожалуйста, как можно ранжировать записи без аналитических функций, но чтобы ранг работал как функция rank(), а не dense_rank()?
...
Рейтинг: 0 / 0
13.06.2019, 12:54
    #39826105
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ранжирование без аналитических функций.
Скалярный агрегатный count с корреляцией по <= (>=)

http://www.bugtraq.ru/forum/faq/general/smart-questions.html] RTFM
...
Рейтинг: 0 / 0
13.06.2019, 12:59
    #39826113
vgpframed
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ранжирование без аналитических функций.
Elic,
Спасибо Вам! Извините за постановку вопроса, я новичок((.
...
Рейтинг: 0 / 0
13.06.2019, 13:03
    #39826115
vgpframed
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ранжирование без аналитических функций.
vgpframed,
Более подробно.. есть запрос.. который работает как dense_rank(), а мне нужно, чтобы он работал как rank().
select q.acc, q.amt, q.dt, count(distinct q1.dt)+1 rn
from tb q left join tb q1
on q.acc=q1.acc and q.dt<q1.dt
group by q.acc, q.dt, q.amt
order by acc,dt desc;
...
Рейтинг: 0 / 0
13.06.2019, 13:14
    #39826126
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ранжирование без аналитических функций.
vgpframed,

дистинкт лишний

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
  1  select deptno,ename,job
  2  ,rank() over (partition by deptno order by job) r
  3  ,(select count(*) from emp e2 where e2.deptno=e.deptno and e2.job<e.job)+1 rs
  4* from emp e
SQL> /

    DEPTNO ENAME      JOB                R         RS
---------- ---------- --------- ---------- ----------
        10 MILLER     CLERK              1          1
        10 CLARK      MANAGER            2          2
        10 KING       PRESIDENT          3          3
        20 SCOTT      ANALYST            1          1
        20 FORD       ANALYST            1          1
        20 ADAMS      CLERK              3          3
        20 SMITH      CLERK              3          3
        20 JONES      MANAGER            5          5
        30 JAMES      CLERK              1          1
        30 BLAKE      MANAGER            2          2
        30 MARTIN     SALESMAN           3          3
        30 WARD       SALESMAN           3          3
        30 ALLEN      SALESMAN           3          3
        30 TURNER     SALESMAN           3          3

14 rows selected.



.....
stax
...
Рейтинг: 0 / 0
13.06.2019, 13:39
    #39826143
vgpframed
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ранжирование без аналитических функций.
Stax,
Огромное спасибо!Выручили:)
...
Рейтинг: 0 / 0
13.06.2019, 14:17
    #39826157
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ранжирование без аналитических функций.
Код: plsql
1.
2.
3.
4.
5.
  1  select deptno,ename,job
  2  ,rank() over (partition by deptno order by job) r
  3  ,(select count(*) from emp e2 where e2.deptno=e.deptno and e2.job<e.job)+1 rs
 +3  ,(select rank(e.job) within group (order by job) from emp where deptno = e.deptno) безанала
  4* from emp e
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Ранжирование без аналитических функций. / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]