phpbar.de logo

Mailinglisten-Archive

Summenfunktion

Summenfunktion

Christoph 'Le o' Weißenborn chw-le at gmx.de
Die Aug 17 16:02:41 CEST 2004


Hallo Marco,

bitte beachte Deine Formatierung der Email. Absätze, Groß- und Kleinschreibung
sind nicht umsonst im Deutschen üblich. (Weitere Hinweise auf den Internetseiten
der Mailingliste!)

Zitiere Marco Kitsche <marco.kitsche at chemie.tu-dresden.de>:
> 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

Von SQL her, ist das meiner Meinung nur etwas umständlich möglich. Du brauchst
dazu MySQL in einer Version 4.x (in 3.x gibt es keine Unterabfragen).
Hier mein Versuch (ich kann es auf einem 3.x selbst nicht probieren):

   SELECT `o`.`benutzer_id`, SUM(`o`.`punkte`)
     FROM `tbl_ergebnisse` AS `o`
    WHERE `o`.`punkte` IN
                 (SELECT `k`.`punkte`
                    FROM `tbl_ergebnisse` AS `k`
                   WHERE `k`.`benutzer_id` = `o`.`benutzer_id`
                ORDER BY `k`.`punkte` DESC
                   LIMIT 0, 8)
 GROUP BY `o`.`benutzer_id`;


Grüße,
 Christoph
-- 
Fingerprint=65B7 73B6 5969 AC2B 4572 39A2 0DBC DAC1 3D6A 45B7
email auch: chw- at gmx.de / mai01dzr at ...

-- 
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 


php::bar PHP Wiki   -   Listenarchive