Выберите первый дублированный элемент - PullRequest
0 голосов
/ 15 октября 2019

У меня есть 2 класса в JAVA ( MODEL1 && MODEL2 ) Как вы можете видеть здесь:

MODEL1_ID   ACTN_DTE   MODEL2_ID    
---------- --------- --------------
         1 14/11/19  18         
      1000 14/11/19  4
      1001 14/11/19  19
      1002 14/11/19  4
      1003 14/11/19  4
      1004 14/11/19  18
      2000 14/11/19  5

Я пытаюсь найти способ с помощью SQL или HQL получить все элементы из MODEL1, которые имеют список MODEL2_ID, получить только первую (min MODEL1_ID) MODEL1 на MODEL2_ID (в случае, если он дублирован) .

Пример: Ввод: MODEL2_ID in (18,4,19,5)

MODEL1_ID   ACTN_DTE   MODEL2_ID    
---------- --------- --------------
         1 14/11/19  18         
      1000 14/11/19  4
      1001 14/11/19  19
      2000 14/11/19  5

Ответы [ 2 ]

1 голос
/ 15 октября 2019

Вполне возможно, что под "первым" вы подразумеваете минимум actn_date, а вопрос просто содержит бесполезную выборку данных (поскольку все значения одинаковы).

Если это так, вы можете использоватьагрегирование с keep для получения первого значения по actn_date:

select model2_id, min(actn_date) as actn_date,
       min(model1_id) keep (dense_rank first order by actn_date) as model1_id
from t
group by model2_id;
1 голос
/ 15 октября 2019

select MIN(MODEL1_ID) FROM table GROUP BY (MODEL2_ID)

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