Данные Oracle SQL Aggregate на основе уникального столбца - PullRequest
0 голосов
/ 01 октября 2018

Я надеюсь, что то, чего я хочу достичь, возможно, то есть сгруппировать стоимость по уникальному идентификатору, а не повторять его для уникальных идентификаторов, соответствующих номерам счетов.

Текущий:

Unique_ID    PO#    Inv#    Cost
1            10     1X      £500
1            10     2X      £500
1            10     3X      £500
1            10     4X      £500

Теперь стоимость ПО составляет 500 фунтов стерлингов, но, поскольку у меня есть счета-фактуры, которые составляют ПО, они дублируют эти затраты (у нас есть странное требование квернуть стоимость ПО, а не стоимость счета).Вместо этого я бы искал что-то вроде:

Желаемый:

Unique_ID    PO#    Inv#    Cost
1            10     1X      £500
1            10     2X     
1            10     3X     
1            10     4X      

Достижимо ли это при использовании DISTINCT в столбце Стоимость?

1 Ответ

0 голосов
/ 01 октября 2018

Вы можете использовать row_number():

select t.*, 
       (case when row_number() over (partition by Unique_ID, PO#, Cost order by Inv) = 1 
             then cost 
        end) as cost 
from table t;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...