Select 第一个重复的元素

Select the first duplicated element

我在 JAVA 中有 2 个 类 ( MODEL1 && 模型 2) 如您所见:

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 列表的所有元素, 仅获取第一个(最小 MODEL1_ID) MODEL1 per 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

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

您说的 "first" 可能是指最小值 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;