Oracle 11g:对 GROUPED 数据的 LIMIT OFFSET

Oracle 11g: LIMIT OFFSET on GROUPED data

我有以下查询和结果集

第一个数据未分组,第二个数据按 "category" 分组。我的目标是对这些分组数据使用分页,但是由于 Oracle 11g 不支持 LIMIT 和 OFFSET,这已成为一个问题。

我调查了这个问题以寻求想法;

How to add offset in a "select" query in Oracle 11g?

但是我不想使用 WHERE 子句,因为它会从组中排除记录。

SELECT MAX(tb_test_1.category) as category, COUNT(tb_test_1.category) as count 
FROM tb_test_1 
GROUP BY tb_test_1.category

有人能告诉我如何在 Oracle 11g 中对上述查询使用 LIMIT 和 OFFSET 吗?

谢谢

这是一个广为人知的问题,可能存在很多重复的回答,但无论如何在你的情况下这个查询应该有效:

select * from (

    select rownum offset, rs.* from (

       SELECT MAX(t.category) as category, 
              COUNT(t.category) as count 
         FROM tb_test_1 t 
        GROUP BY t.category
        /* add order by clause here if needed */

   ) rs

) where rownum <= 10 /* limit */
    and offset >= 0 /* offset */