Как мне отфильтровать таблицу, чтобы показать результат в Oracle? - PullRequest
0 голосов
/ 12 декабря 2018

У меня есть исходная таблица:

enter image description here

Мне нужно сопоставить ее с таблицей назначения, где я бы выбрал один уникальный идентификатор и цвет с минимумомзначение состояния и форма с максимальным значением состояния этого идентификатора.Например, enter image description here

Ответы [ 2 ]

0 голосов
/ 13 декабря 2018

Вы можете использовать Аналитические функции Oracle в подзапросе.Соединения не нужны.

select
r.id,
r.color,
r.shape
from
(
    select
    s.id,
    first_value(s.color) over (partition by s.id order by s.status) as color,
    first_value(s.shape) over (partition by s.id order by s.status desc) as shape,
    row_number() over (partition by s.id order by s.status) as row_index
    from shapes s
) r
where r.row_index = 1;
0 голосов
/ 12 декабря 2018

Хорошо, я наконец смог записать это:

Select x.id, x.shape,y.color 
from 
     (Select id ,shape 
      from Shapes
      where status in ( Select max (status) 
                        from shapes 
                        group  by id)
        ) x 
  join 
        (Select id , color 
          from shapes 
          where status in (Select min(status) 
                           from shapes 
                           group by id )
       ) y 
on x.id = y.id;

Более короткие ответы приветствуются

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