Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / row_number / 3 сообщений из 3, страница 1 из 1
01.11.2019, 17:08
    #39884407
elimpion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
row_number
Всем привет, есть запрос вида
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
with  
  qwert as (select '123123' as contracts, '123' as contrackind, '1111' as clients from dual
  union all
  select '123124' as contracts, '123' as contrackind, '1111' as clients from dual
  union all
  select '123125' as contracts, '123' as contrackind, '1112' as clients from dual)
  select k.* from (
select q.contracts, q.contrackind, q.clients, row_number() OVER (PARTITION BY q.clients ORDER BY q.clients DESC) AS RN
  from qwert q 
  ) k
  where k.rn= 1


Если у клиента есть два и более договора с одинаковым contrackind, то он не должен попадать в отбор, т.е. должны только вывестись данные по клиенту 1112. У меня же клиент 1111 все же вывелся, только с один договором, подскажите как исправить
...
Рейтинг: 0 / 0
01.11.2019, 17:13
    #39884414
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
row_number
Код: plsql
1.
2.
3.
4.
select min(contracts) contracts, contrackind, clients
from qwert q 
group by contrackind, clients
having count(*) = 1
...
Рейтинг: 0 / 0
01.11.2019, 17:13
    #39884415
AmKad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
row_number
Код: plsql
1.
count(*) over (partition by q.clients, q.contrackind) cnt
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / row_number / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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