Mailinglisten-Archive |
Hallo, hier ein Vorschlag ohne Sub-Selects, aber dafür leider mit temp-Tabellen: - eine temporäre Tabelle temp_punkte (temp_id, benutzer_id, punkte - die temp_id muss auto_increment sein, die benutzer_id ein einfaches int), - eine temporäre Tabelle temp_anzahlen (benutzer_id,anzahl, loesch_id,max_temp_id) - und evtl. eine Variable anzahl_eintraege (dann kannst du ggf. später die Anzahl der zu berücksichtigenden Einträge bequemer ändern) SET @anzahl_eintraege=8; TRUNCATE temp_punkte; INSERT INTO temp_punkte(benutzer_id, punkte) SELECT benutzer_id, punkte FROM original_benutzer_tabelle ORDER BY benutzer_id ASC, punkte DESC; TRUNCATE temp_anzahlen; INSERT INTO temp_anzahlen(benutzer_id, anzahl, max_temp_id) SELECT benutzer_id, COUNT(*), MAX(temp_id) FROM temp_punkte GROUP BY benutzer_id; UPDATE temp_anzahlen SET loesch_id = max_temp_id-anzahl+ at anzahl_eintraege+1 WHERE anzahl>@anzahl_eintraege; DELETE temp_punkte.* FROM temp_punkte INNER JOIN temp_anzahlen ON temp_punkte.benutzer_id=temp_anzahlen.benutzer_id AND temp_punkte.temp_id BETWEEN temp_anzahlen.loesch_id AND temp_anzahlen.max_temp_id; SELECT benutzer_id, SUM(punkte) FROM temp_punkte GROUP BY benutzer_id Leider ist mir nichts Kürzeres eingefallen. Kann auch leider momentan nicht testen. Vielleicht hilft's ja trotzdem... Grüße an die Füße, Christiane >einen schönen guten tag an alle hier in der mailingliste >ich bin neu hier und hoffe nicht allzuviel falsch zu machen. ich hab ein >problem bei der berechnung einer summe. >meine datenbank enthält z.B 2 Spalten eine Spalte Benutzer_id und eine >Spalte Punkte. >z.B >1 10 >2 6 >1 7 >2 2 >3 0 >4 5 >usw. also jede benutzer_id hat verschiedene Anzahl von Punkten. nun möchte >ich die summe der besten 8 Punkte jeder benutzer_id berechnen. >bis jetzt hab ich es mit einem group by benutzer_id probiert. das problem >ist das ich dann nur die komplette summe ausrechnen kann. wenn ich es mit >limit limitieren will dann limitiert es die benutzer_id >meine jetzige abgrage war: >select benutzer_id,sum(punkte) from tbl_ergebnisse group by benutzer_id > >wäre super wenn mir jemand helfen könnte >mit freundlichen grüssen marco > >-- >Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter >-->> http://www.4t2.com/mysql -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive