2011-12-14 5 views
0

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

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    

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

+0

Ваш результат может быть достигнут путем выбора TRN и LOC, а затем группировки на них с помощью GROUP BY. – Ollie

+0

Всегда ли существует взаимно-однозначная связь между TRN и LOC? – APC

ответ

3
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

Смежные вопросы