Oracle 11g:GROUPED数据的LIMIT OFFSET

时间:2015-12-30 04:23:32

标签: sql oracle oracle11g pagination rownum

我有以下查询和结果集

enter image description here

第一个数据未分组,第二个数据按“类别”分组。我的目标是在这个分组数据上使用分页,但是由于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吗?

谢谢

1 个答案:

答案 0 :(得分:0)

这是众所周知的问题,可能存在大量已回答的重复问题,但无论如何,在您的情况下,此查询应该有效:

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 */