AVG() Funktion, mache ich was falsch oder ist es ein Bug?
am 01.12.2007 11:28:05 von Oswaldt OldenburgHallo NG,
ich habe ein ziemlich übles Problem - denke ich zumindest. Bei der
Group-Funktion AVG() bekomme ich unkorrekte Ergebnisse. Eigentlich
erwarte ich, daß 0.95 herauskommen - tun es aber nicht.
CREATE TABLE `dummy` (
`id` int(11) NOT NULL auto_increment,
`x` float default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
INSERT INTO `dummy` VALUES (1, 0.95);
INSERT INTO `dummy` VALUES (2, 0.95);
INSERT INTO `dummy` VALUES (3, 0.95);
INSERT INTO `dummy` VALUES (4, 0.95);
SELECT avg(x) FROM `dummy` WHERE 1;
Ergebnis:
0.94999998807907
Ich habe es auch bei einer online verfügbaren MySQL-DB versucht - mit
dem selben Ergebnis.
meine Version:
localhost
Server Version: 5.0.45-community-nt
Frei DB im Netz Version:
http://www.db4free.net/
Server version: 5.1.22-rc-log
Wenn ich eine Typumwandlung mache, klappt es korrekt.
SELECT avg( cast( x AS decimal( 16, 6 ) ) ) FROM `dummy` WHERE 1;
Ergebnis:
0.9500000000
Das Problem tritt unabhägig davon auf, wo ich die Query absetzte: ob auf
der Commandline, MySQL-Query-Browser oder .. PhpMyAdmin.
Habt ihr eine Idee dazu?
Vielen Dank für eure Hilfe im Voraus
Oswaldt