3ROJKA - ultd

sobota, června 10, 2006

Trochu matematiky

Jeden kolega potřeboval pomocí SQL spočítat součin hodnot v daném slopečku tabulky. A jiný můj kolega mu poradil takou vtipnou věc. No není to pěkné posuďte sami:

SELECT exp(sum(log(column_name))) FROM table_name




2 Comments:

  • To, co tam mas, asi nebude pro Oracle, co? Pro oracle by to melo byt napr. SELECT POWER(10, SUM(LOG(10, n))) FROM table_name...

    A zkousel jsi zkoumat, jak je to s presnosti takovehoto vypoctu? Co zaokrouhlovaci chyby? Mozna ze priblizne to je, ale presne to rozhodne neni...

    Dej si do tabulky napr. 0.2, 10, 0.01 a vysledkem vypoctu je .0199999999999999999999999999999999999999 (a to jsou to jen tri cisla!). Zahrn takto nepresna cisla do nejakeho slozitejsiho vypoctu (treba je vynasob, odmocni) a vysledek ustreli uplne nekam jinam.

    By Anonymous Anonymní, at pondělí, června 12, 2006  

  • Pro oracle by tam stačilo dát ln, ale o to tady moc nešlo, šlo v podstatě jenom o takovou perličku. Já sám sem to ani nezkoušel jenom se mi na tom líbila ta matemetika.

    By Blogger 3rojka, at pondělí, června 12, 2006  

Okomentovat

<< Home