我在JAVA中有2个课程( 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列表的元素,每个MODEL2_ID 仅获取第一个(最小MODEL1_ID)MODEL1(以防止重复) ) 。
示例: 输入:(18,4,19,5)中的MODEL2_ID
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
答案 0 :(得分:1)
select MIN(MODEL1_ID) FROM table GROUP BY (MODEL2_ID)
答案 1 :(得分:1)
“第一个”可能是指最小值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;