SELECT * FROM // c[_]~~

Avatar

ein IT-Blog, mehr nicht!

Summe ausgewählter Datensätze

Problem: In einer MySQL-Datenbank soll die Summe nur über eine bestimmte Anzahl von Datensätzen berechnet werden.
Lösung: Ein einfaches Subselect im FROM-Statement mit der Einschränkung auf die Anzahl Ergebniszeilen über das Schlüsselwort LIMIT.

SELECT SUM(zaehler)
FROM (SELECT zaehler FROM tabelle LIMIT 10) sub;

Kombiniert man den Konstrukt noch mit einer ORDER BY Klausel ist es möglich die Summe der 10 höchsten oder der 10 niedrigsten Werte in der Tabelle zu berechnen.

SELECT SUM(zaehler)
FROM (
SELECT zaehler
FROM tabelle
ORDER BY zaehler [ASC|DESC]
LIMIT 10
) sub;

Die Abfrage funktioniert natürlich auch mit der Gruppenfunktion AVG().

Was an dieser Stelle noch zu erwähnen ist, dass der Subquery-Konstrukt erst ab der Version 4.1 von MySQL funktioniert. In älteren Versionen von MySQL wird dieser nicht unterstützt und die Lösung beschränkt sich auf eine Iteration der Ergebnisliste im Quellcode der Programmier- respektive Skriptsprache.

Jan Häußler Von >>
Abgelegt unter >>
Tags >>
  • insgesamt: 561 //   heute: 3 //   zuletzt: 7. January 2009
Gelesen >>
No Comments, Comment or Ping
Reply to “Summe ausgewählter Datensätze”

Suche