SQL Oracle для выбора столбца, который отображает наибольшее значение в наборе результатов - PullRequest
0 голосов
/ 24 мая 2018

У меня есть запрос, который загружает определенный набор данных.Пожалуйста, смотрите пример таблицы для иллюстрации

 Select I.Invoice_ID, I.Invoice_Date, CI.Unit_Rate
 FROM Invoice I, ChargeInvoice CI


Invoice_ID   Invoice_Date  Unit_Rate
A1           05/08/2018    100
A2           04/08/2018    200
A3           03/08/2018    300
B6           04/06/2018    150
C5           04/15/2018    2000

Что мне нужно, чтобы добавить вычисляемый столбец, который отображает максимальное или максимальное значение одного поля в наборе результатов, которое можно назвать MAX_UNIT_RATE.

Ожидаемый набор результатов выглядит примерно так

  Invoice_ID   Invoice_Date    Unit_Rate   Max_Unit_Rate
    A1           05/08/2018    100         2000
    A2           04/08/2018    200         2000
    A3           03/08/2018    300         2000
    B6           04/06/2018    150         2000
    C5           04/15/2018    2000        2000

Я пробовал это, но не получил желаемого результата

select IV.INVOICE_ID, IV.INVOICE_DATE , ICV.UNIT_RATE, MAX(ICV.UNIT_RATE) AS MAX_UNIT_RATE
FROM INVOICE_V IV,  
    INVOICE_CHARGE_V ICV
 GROUP BY IV.INVOICE_ID,  IV.INVOICE_DATE, ICV.UNIT_RATE

1 Ответ

0 голосов
/ 24 мая 2018

Вы должны написать свой запрос с правильными join условиями.Решением вашей проблемы являются оконные функции:

SELECT I.Invoice_ID, I.Invoice_Date, CI.Unit_Rate,
       MAX(CI.Unit_Rate) OVER () as MAX_Unit_Rate
FROM Invoice I JOIN
     ChargeInvoice CI
     ON I.Invoice_Id = CI.Invoice_ID -- this is a guess
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...