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

Sql 获取按其他字段分组的前N个记录,sql,oracle,Sql,Oracle,我有一个带有ID、SUBJECT和负载CLOB的Oracle表。我想按主题分组,列出具有最大有效载荷长度的前10项记录。因此,如果表中有10个不同的主题,那么查询应该返回100行,每个主题前10行 使用行号: 我看到了,但不太管用。需要评估字段长度的内容,而不仅仅是ID。 select t.* from (select t.*, row_number() over (partition by subject order by length(payload) desc) as seqnum

我有一个带有ID、SUBJECT和负载CLOB的Oracle表。我想按主题分组,列出具有最大有效载荷长度的前10项记录。因此,如果表中有10个不同的主题,那么查询应该返回100行,每个主题前10行

使用行号:


我看到了,但不太管用。需要评估字段长度的内容,而不仅仅是ID。
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;