Выберите максимальное значение в запросе для типа - PullRequest
0 голосов
/ 30 октября 2018

У меня есть запрос

select order_no,
       line_no,
       type_id,
       delivery_date
from   orders

Значение равно

CO_01     1     A    2018-01-01
CO_01     2     A    2018-01-01
CO_01     3     B    2018-01-10 
CO_01     4     A    2018-01-01

Всегда будет один type_id B с датой доставки diffrend. Как выбрать для всех строк другой столбец с именем max_delivery_date, который будет иметь значение delivery_date для типа B?

Ответы [ 2 ]

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

Не уверен, что именно вы хотите, но мы могли бы попробовать здесь использовать аналитические функции. Вызов MAX ниже найдет delivery_date записи, имеющей type_id B, для каждой группы записей, соответствующей одному order_no.

SELECT
    order_no,
    line_no,
    type_id,
    delivery_date,
    MAX(CASE WHEN type_id = 'B' THEN delivery_date END)
        OVER (PARTITION BY order_no) max_date
FROM orders;

enter image description here

** * 1013 1014 *

Демо

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

Добавить внутри выберите максимум для типа B:

 select order_no,
   line_no,
   type_id,

(
  Select max(
   delivery_date) as max_delivery

  from   orders with type_id='B')  
As max_delivery_date

 from   orders
...