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;
我在 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;