Thought I would give a little more explanation and proof of the solution that I provided earlier.
The geometric mean (GM) of numbers a_1, a_2, ..., a_n is the nth root of the product a_1*a_2...*a_n
If we have 2 numbers, a and b, then GM = a*b^1/2.
Example: 4 and 9 4*9=36 36^1/2=6.
If we have 3 numbers, a, b and c, then GM = a*b*c^1/3 and so on.
This kind of calculation is difficult if not impossible over a set of data in a table using SQL statements. However, by using log transformations, we can simplify the math enabling us to create a query that will work. Products of a series of numbers can be transformed to sums of the logs of the numbers. Finding the nth root of the numbers can be transformed to division by n.
Thus a_1*a_2...*a_n^1/n can be transformed to (log(a_1)+log(a_2)...+log(a_n))/n or in SQL avg(log(colA)). Once we've found that result, we find the antilog using the exp function and thus GM=exp(avg(log(colA))).
Hope this helps. Terry
X-) "Life would be easier if I had the source code." -Anonymous