MIDRANGE dot COM Mailing List Archive



Home » MIDRANGE-L » September 2009

Re: SQL Select - Average of top 25% records



fixed

Jack

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).

HTH
Vern

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?

TIA
Jack








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

This mailing list archive is Copyright 1997-2014 by MIDRANGE dot COM and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available here. If you have questions about this, please contact