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 */
我有以下查询和结果集
第一个数据未分组,第二个数据按 "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 */