获取按其他字段分组的前N个记录

时间:2014-12-16 18:59:58

标签: sql oracle

我有一个带有ID,SUBJECT和PAYLOAD(CLOB)的Oracle表。我想获得按主题分组的最大PAYLOAD(LENGTH(PAYLOAD))的十大记录列表。因此,如果表中有10个DISTINCT SUBJECT,则查询应返回100行(每个主题前10位)。

1 个答案:

答案 0 :(得分:2)

使用row_number()

select t.*
from (select t.*, row_number() over (partition by subject order by length(payload) desc) as seqnum
      from table t
     ) t
where seqnum <= 10;