Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: Histogram/Bucketizing resultset
in article 499d4ffb.0210302045.452ef143_at_posting.google.com, NoSpamPlease at
googleposer_at_yahoo.com wrote on 10/30/02 8:45 PM:
> Given an input table T(age)
>
> Age
> 27
> 24
> 34
> 56
> 40
> 76
> 30
> 32
> 67
> 71
>
> I would like to generate the following output
>
> Range Value
> 0-10 0
> 11-20 0
> 21-30 2
> 31-40 4
> 41-50 0
> 51-60 1
> 61-70 1
> 71-80 2
> 81-90 0
> 91-100 0
>
>
> Can anyone help me with a query
> Thx in adv
For an Oracle solution, assuming the bucket ranges you have given, something like
SELECT
(CASE WHEN age BETWEEN 0 AND 10 THEN ' 0 - 10' WHEN age BETWEEN 11 AND 20 THEN '11 - 20' WHEN age BETWEEN 21 AND 30 THEN '21 - 30'...
(CASE WHEN age BETWEEN 0 AND 10 THEN ' 0 - 10' WHEN age BETWEEN 11 AND 20 THEN '11 - 20' WHEN age BETWEEN 21 AND 30 THEN '21 - 30'...
Depending on your actual requirements, you may also want to investigate NTILE or WIDTH_BUCKET functions, which will automatically create either equiwidth buckets or histograms for you, respectively - http://otn.oracle.com/docs/products/oracle9i/doc_library/release2/server.920 /a96520/analysis.htm Received on Wed Oct 30 2002 - 23:26:06 CST