1.oracle 中使用相关子查询
原表 etcd可理解为重复的类别id
处理后
sql语句
select * from et_deta e where e.etId in
(select etId from (SELECT * FROM et_deta ORDER BY Time desc) where ROWNUM <=2 and e.etcd = etcd)
2.mysql中可以直接仿照上面的
3.SqlServer中也可以直接仿照上面的用top关键字
亦可以
有问题欢迎大家指出
补充 partition by ...order by(oracle 中更加简单)
select t.*,to_char(t.DT_START,'yyyy-MM-dd') st_start from
(select t.*,row_number() over (partition by t.nm_type order by t.version desc) RN from t_hy_appversion_i t
) t where RN <= 4