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

http://www.bugtraq.ru/forum/faq/general/smart-questions.html] RTFM
...
Рейтинг: 0 / 0
Ранжирование без аналитических функций.
    #39826113
vgpframed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Elic,
Спасибо Вам! Извините за постановку вопроса, я новичок((.
...
Рейтинг: 0 / 0
Ранжирование без аналитических функций.
    #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
Ранжирование без аналитических функций.
    #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
Ранжирование без аналитических функций.
    #39826143
vgpframed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax,
Огромное спасибо!Выручили:)
...
Рейтинг: 0 / 0
Ранжирование без аналитических функций.
    #39826157
Фотография -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
7 сообщений из 7, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Ранжирование без аналитических функций.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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