Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 row_number  [new]
elimpion
Member

Откуда:
Сообщений: 226
Всем привет, есть запрос вида
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 все же вывелся, только с один договором, подскажите как исправить
1 ноя 19, 17:08    [22008316]     Ответить | Цитировать Сообщить модератору
 Re: row_number  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 17717
select min(contracts) contracts, contrackind, clients
from qwert q 
group by contrackind, clients
having count(*) = 1
1 ноя 19, 17:13    [22008324]     Ответить | Цитировать Сообщить модератору
 Re: row_number  [new]
AmKad
Member

Откуда:
Сообщений: 5111
count(*) over (partition by q.clients, q.contrackind) cnt
1 ноя 19, 17:13    [22008325]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить