Search Postgresql Archives

Re: No stddev() for interval?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



First of all, stddev doesn't return square of smth - so, why should we
worry about intermediate results? Furthermore, statistics work with
any 'units' and doesn't worry about physical meaning of variance in
any case (for example, what about variance for the set of lifetime
values of people from town N in XX century? ;-) ).

Second, SQL standard doesn't contain definition for STDDEV function,
but it has STDDEV_POP and STDDEV_SAMP (but it doesn't really matter
for this discussion). As for valid datatypes for these functions, I
cannot find exact definition unfortunately, but I see folliwing:
'Without Feature T621, "Enhanced numeric functions", conforming SQL
language shall not contain a
<computational operation> that immediately contains STDDEV_POP,
STDDEV_SAMP, VAR_POP, or
VAR_SAMP.'
So, authors meant that these functions should accept only numeric values.

Last but not least, ORA doesn't want to accept interval values for
stddev() func:

CREATE TABLE teststddev(id INTEGER PRIMARY KEY, val INTERVAL YEAR TO MONTH);
INSERT INTO teststddev(id, val) VALUES(1, INTERVAL '300' MONTH(3));
INSERT INTO teststddev(id, val) VALUES(2, INTERVAL '2' YEAR(1));
INSERT INTO teststddev(id, val) VALUES(3, INTERVAL '-125' MONTH(3));
SELECT STDDEV(val) FROM teststddev;

ORA-00932: inconsistent datatypes: expected NUMBER got INTERVAL YEAR TO MONTH

As for me, I think that it's quite reasonable to expect stddev working
with intervals... Why not?

On 5/21/06, David Fetter <david@xxxxxxxxxx> wrote:
On Sun, May 21, 2006 at 01:14:15AM +1000, Brendan Jurd wrote:
> Hi all,
>
> I noticed a peculiarity in the default postgres aggregate functions.  min(),
> max() and avg() support interval as an input type, but stddev() and
> variance() do not.
>
> Is there a rationale behind this, or is it just something that was never
> implemented?

That's because variance of foo is measured in foo^2 units.  What is
the square of an interval?

Cheers,
D
--
David Fetter <david@xxxxxxxxxx> http://fetter.org/
phone: +1 415 235 3778        AIM: dfetter666
                              Skype: davidfetter

Remember to vote!

---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
       choose an index scan if your joining column's datatypes do not
       match



--
Best regards,
Nikolay

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux