0

可能重复:
Oracle:如何在一个范围内“分组”?

假设我有如下数据:

Item             Count
========         ========
1                123
2                1
3                47
4                117
5                18
6                466
7                202

我想创建一个查询,给我这个:

Count Start       Count End        Occurrences
===========       ===========      ===========
0                 100              3
101               200              2
201               300              1
301               400              0
401               500              1

基本上,我想进行一堆计数并将它们分组到统计汇总的范围内。我认为我没有使用正确的关键字来找到答案。我反对 Oracle,但如果有 ANSI SQL 答案,我很想拥有它。

4

2 回答 2

1
select
    a.mini,
    a.maxi,
    count(a.item)
from
(
    select
        table.item,
        case (table.counter)
            when counter>=0 and counter<=100 then 0
            when counter>100 and counter<200 then 101
            when ....
        end as mini
        table.item,
        case (table.counter)
            when counter>=0 and counter<=100 then 100
            when counter>100 and counter<200 then 201
            when ....
        end as maxi
    from
        table
) a
group by
    a.mini,
    a.maxi
于 2012-06-18T23:43:55.780 回答
0

一种方法是使用 CASE 语句。如果您希望它具有可伸缩性,请尝试将范围放在单独的表中并使用 JOIN 来计算出现次数。

于 2012-06-18T20:11:12.067 回答