On Fri, 12 Oct 2001 12:38:12 -0700 "Josh Berkus" wrote: > For those whose stats terminology is rusty, the "median" is the "middle" > value in a distribution. For example, if we had the following data: > > Table ages > person age > Jim 21 > Rusty 24 > Carol 37 > Bob 62 > Leah 78 > > Our Median would be Carol's age, 37. This is a different figure from > the Mean, or Average, which is 44.4. Using the combination of the Mean > and the Median you can do all kinds of interesting statistical analysis. >
In such case of this, there needs "nextval" in a query to deal with a large number of rows. I think the following query, is not smart, will return the necessary rows (or an average of the rows). But even so it may need considerable time... -- (on 7.1.3) create sequence seq_ages start 1; select a1.age, a1.rank -- or select avg(a1.age) from (select a0.person, a0.age, (nextval('seq_ages') - 1) as rank from (select *, setval('seq_ages',1) -- to reset a sequence from ages order by age -- this insignificant "order by" is -- needed in order to work "setval" ) as a0 order by a0.age ) as a1 where exists (select * from ages where a1.rank >= (select (count(*)+1)/2 from ages) and a1.rank <= (select count(*)/2+1 from ages) ) ; Regards, Masaru Sugawara ---------------------------(end of broadcast)--------------------------- TIP 4: Don't 'kill -9' the postmaster