我想對一個由數字索引的成員列表進行簡單查詢,並將它們分組爲等同大小的「桶」。因此,基本查詢是:將SQL結果分隔爲多個範圍
select my_members.member_index from my_members where my_members.active=1;
說我得到1000成員索引號回來了,現在我想通過一個最大和最小成員索引,並分割成10個大小相等組。喜歡的東西:
在0活躍成員通過400:通過577 401 100個 活躍的會員:100 ......在1584 活躍成員通過1765:100
我能想出的最好的是反覆查詢最大(my_members.member_index)隨着越來越ROWNUM限制:
for r in 1 .. 10 loop
select max(my_members.member_index)
into ranges(r)
from my_members
where my_members.active = 1
and rownum < top_row
order by my_members.member_index asc;
top_row := top_row + 100;
end loop;
幹得好。你已經改造了`NTILE`功能:) – 2010-06-29 23:42:08