MySQL Summe bilden

Hoppla, stimmt, meine Lösung kann so gar nicht klappen :-(

Das LIMIT bezieht sich ja nicht auf die Summierung.

Auf die Schnelle fällt mir jetzt auch keine andere Lösung ein, außer halt mit einem Sub Select.
 
MySQL unterstüzt ja mittlerweile zum Teil Subselects. Mit einer älteren Version ist es aber auch möglich einfach ne temporöre Tabelle zu erstellen, die nur die beiden größten Werte enthält und diese dann zu addieren. Sind auch nur 2 Zeilen mehr Code ;)

Allerdings muss man sich ab nem Punkt dann wirklich fragen, ob addieren in der Programmiersprache performanter ist. Bei einer Liste mit 100 Links z.B. würde ich letzteres vorziehen ;)
 
Ansonsten, als SQL-Lösung:

Code:
SELECT SUM(clicks) FROM (SELECT clicks FROM links ORDER BY clicks DESC LIMIT 0, 2)
 
Hallo!

Ich geb ja zu, dass ich die Aufgabenstellung nur kurz überflogen habe. Wie ich sehe wurde eine Lösung gefunden.

Nochmal zu:
Aber was spricht denn nun dagegen, die beiden Werte in php zu addieren?

Wie schon gesagt: Mathematische Funktionen sind wesentlich performanter unter MySQL - als wenn man sie mit PHP (unkommpiliert) ausführen läst.

Chris
 
Ja, aber manchmal muss man eben abwägen. Und wenn für die gewünschte Abfrage noch ne temporäre Tabelle her muss...geht das dann nicht zu weit? Und ist das dann wirklich perfomanter?
 
Es ist perfmormanter.

Ich habe noch nie erlebt, dass Mathematische Probleme schneller in PHP denn in MySQL gewesen wären. Vergiss nicht, PHP wird (wenn nicht vorkommpiliert) immer erst interpretiert.

Chris
 
Zurück