I've not tried it, but there is a way to get the first n rows from a SELECT. If that can be put into a view or a correlated table expression (using With RS as (select ...)) then you could average over that result set. You could also use a nested table expression (put that SELECT inside parentheses in the table list of your main SELECT).


Jack Prucha wrote:
I can get an average fo all the records. The accounts without a balance
don't count.

SELECT AVG(b0balance) FROM cvactdtl
WHERE b0balance > 0

I can calculate 25% of the records

SELECT COUNT(*) * .25 FROM cvactdtl
WHERE b0balance > 0

But how can I calculate the average of the top 25% records. Records with
the same balance would be counted separately.

I've looked at RANK and PARTITION BY but can't find enough information to
understand their use.

Any ideas?


This thread ...


Return to Archive home page | Return to MIDRANGE.COM home page