Получение первого вхождения группы строк - PullRequest
0 голосов
/ 14 декабря 2011

У меня есть случай, когда у меня есть транзакция, и эта транзакция состоит из нескольких шагов. Я хочу вернуть первое вхождение этой транзакции, например:

Trn Loc step

111 0   1

111 0   2

111 0   3

222 3   1

222 3   2

333 5   1

333 5   2

333 5   3

и я хочу получить такой результат:

tran                 loc

111                  0    

222                  3   

333                  5              

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

1 Ответ

3 голосов
/ 14 декабря 2011
select t.trn, t.loc 
from (select trn, loc, ROW_NUMBER() OVER (PARTITION BY trn, loc ORDER BY trn, loc) as rnum
from table ) t
where t.rnum = 1

Или вы можете использовать функцию RANK() вместо ROW_NUMBER (), остальная часть синтаксиса такая же.http://www.techonthenet.com/oracle/functions/rank.php

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