ORACLE中取得分组之后,每组数据中(多个字段)不重复的前10条记录,并且按时间排序。

oracle表中,有如下几个字段,
id name product op version time,

我已经实现按name分组,取出每组10条数据,时间倒叙,SQL如下:
SELECT * FROM (SELECT CSV.*,ROW_NUMBER() OVER(partition by MAE_NAME order by CSV.TIME_STAMP_END desc) as RN FROM CONDITION_CSV CSV) WHERE RN < 11;
这个SQL中发现每组的10条数据有product , op , version三个字段完全一样的。

我想在上面的SQL的基础上,实现每组的10条数据中,product , op , version三个字段不完全重复,不知道怎么实现,求大神指导。

SELECT *
FROM (SELECT T2.*, ROW_NUMBER()
OVER(PARTITION BY MAE_NAME ORDER BY TIME_STAMP_END DESC) AS RN2 FROM
(SELECT T1.*,
ROW_NUMBER() OVER(PARTITION BY MAE_NAME, PRODUCT, OP, VERSION ORDER BY TIME_STAMP_END DESC) AS RN1
FROM CONDITION_CSV T1) WHERE RN1 = 1) T2
WHERE RN2 < 11
温馨提示:答案为网友推荐,仅供参考