Mailinglisten-Archive |
>From: Thilo Haas <haas at haas-media.de> >Reply-To: mysql-de at lists.4t2.com >To: <mysql-de at lists.4t2.com> >Subject: HAVING (a) Problem :-) >Date: Mon, 10 Mar 2003 14:17:27 +0100 > >Hallo Liste, >ich möchte aus einer recht umfangreichen Tabelle jeweils den >Datensatz bekommen, der in einem Feld den höchsten Wert hat. Dabei >bin ich auf ein Problem gestossen: > >Die in meinem gesunden SQL Halbwissen zusammengestellte Abfrage > >SELECT id,grp,d FROM t GROUP BY grp HAVING d=max(d) ORDER BY id > >scheint nicht das gewünschte Ergebnis zu liefern. > >Hier mal meine Testdaten: > > >CREATE TABLE t ( > id varchar(32) NOT NULL default '', > grp varchar(255) NOT NULL default '', > d double NOT NULL default '0', > PRIMARY KEY (id) > ) TYPE=MyISAM; > ># ># Daten für Tabelle `t` ># > >INSERT INTO t VALUES ('1', '1', '55'); >INSERT INTO t VALUES ('2', '2', '35.2'); >INSERT INTO t VALUES ('3', '1', '77'); >INSERT INTO t VALUES ('4', '2', '23.1'); >INSERT INTO t VALUES ('5', '3', '60.2'); > >Ich habe nun folgende Abfrage: >SELECT id,grp,d FROM t GROUP BY grp HAVING d=max(d) ORDER BY id > >Als Ergebnis habe ich folgendes erwartet: > >id grp d >----------- >3 1 77 >2 2 35.2 >5 3 60.2 > >Herausgekommen ist aber: >id grp d >----------- >2 2 35.2 >5 3 60.2 > >Es funktioniert immer solange der höchste Wert der erste in der Tabelle ist >... > >Mache ich da einen grundsätzlichen Denkfehler, oder kann man das Problem >auch anders lösen? >Mit freundlichen Grüssen > >Thilo Haas > AW: Hi , Thilo Versuche mal: SELECT id,grp,MAX(id) FROM t GROUP BY grp: MfG, Guido _________________________________________________________________ Fotos - MSN Fotos das virtuelle Fotoalbum. Allen Freunden zeigen oder einfach online entwickeln lassen: http://photos.msn.de/support/worldwide.aspx -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive