joerg
Themenersteller
Fachinformatiker Anwendungsentwicklung
Content Gott (1941 Beiträge)
3 Maximal Werte in Summe
Hallo
Habe für eine Abfrage in Mysql mein derzeitiges Wissen erschöpft!
Und zwar möchte ich aus einer Datenbank die Summe der 3 Maximalen Punkte pro idname im letztem Jahr auslesen.
Jetzt müsste ich für die Summe noch ein Limit für 3 setzen. Bei der Summe berechne ich momentan alle Datensätze.
[SQL]
$abfrage = "SELECT *, SUM(punkte) AS summe, MAX(punkte) as
max FROM weltrang WHERE now()<date_add(datum,interval 1 year) <br />
GROUP BY idname ORDER BY summe DESC";
$ergebnis = mysql_query($abfrage);
while($dat = mysql_fetch_array($ergebnis))
[/SQL]
Kann mir da jemand weiterhelfen?
Gruß
Jörg
Zufällige Umleitung zu der Startseite einer meiner Domains
Meine ungewöhnlichen Tools
romacron
JDev Xer
Content Gott (1224 Beiträge)
Hallo Joerg!
Versuchs doch mal mit LIMIT fürs sql
[TS]...idname ORDER BY summe DESC LIMIT 3
Für mysql gibt refman-5.1-de.chm
Da stehen ein paar Hilfestellungen drinn.
Gruss Roman
joerg
Fachinformatiker Anwendungsentwicklung
Content Gott (1941 Beiträge)
gmmts
Projektleiter
Guru (183 Beiträge)
Ich verstehe dein Vorhaben nicht so ganz. Erkläre es doch mal genauer. Dann kann ich dir helfen.
LG André Schneider
Projektleiter GMMTS Community
Eine Community mit vielen Funktionen, Datenschutz, Privatsphäre, Verschlüsselungen und vielem mehr.
Homepage: http://gmmts.de
E-Mail: kontakt@gmmts.de
[img]http://www.seitenreport.de/button.ph
joerg
Fachinformatiker Anwendungsentwicklung
Content Gott (1941 Beiträge)
Hallo Andre
Ich möchte die Summe der drei höchsten Werte und nicht mehr
Werte zu einer ID mir durch SQL ausgeben lassen.
Zusätzlich dürfen die Werte nur ein Jahr zurückliegen.
Bei der Summe werden momentan alle Werte berechnet und Maximalwert gibt mir nur den höchsten Wert zurück!
Also müsste ich mir entweder die drei höchsten Maximalwerte ausgeben lassen und die dann summieren oder es so bauen das die Summe nur mit den drei grössten Werten gebildet wird.
Gruß
Jörg
Zufällige Umleitung zu der Startseite einer meiner Domains
Meine ungewöhnlichen Tools
der_booker
Foren Moderator
selbständig
(2762 Beiträge)
mic85
Informatiker
Beginner (44 Beiträge)
hallo jörg,
diese interessante abfrage ist in in mysql nicht in einem query lösbar.
option 1:
du könntest höchstens mit UNION ein untergeordnetes query mitsenden das die die 3 höchsten werte "nachliefert".
ACHTUNG: potentiell unsafe!
option 2:
die logik in php abbilden. ein query in einer schleife ist aber ein absolutes no-go!!! die erzeugte last steigt mit der größe des datenbestands!
option 3 (mein tipp):
beim punkte erfassen direkt die höchsten werte in der datenbank speichern a la: abs_max, 2nd_max, 3rd_max und diese beim aktualisieren pflegen. somit wird dein problem in einem query lösbar und der overhead bleibt minimal. ist zwar nicht das sauberste datenbankmodell aber meiner meinung nach in diesem fall praktikabel.
Liebe Grüße aus Mannheim,
Michael Kohl
kohl@websol-media.de
http://www.websol-media.de
der_booker
Foren Moderator
selbständig
(2762 Beiträge)
Vielleicht hätte ich da noch ein Tipp.?
Komplizierte Abfragen stelle ich mit Access nach. Diese Abfragen lassen sich dort einfach zusammenstellen und ggf. anpassen.
:wink:
Heiko Jendreck
personal helpdesk
http://www.phw-jendreck.de
http://www.seo-labor.com
joerg
Fachinformatiker Anwendungsentwicklung
Content Gott (1941 Beiträge)
Hallo Michael
Erst mal Danke !
Ich würde dir wohl zustimmen das Option 3 wohl am meisten praktitabel ist. Da sehe ich aber den Pflegeaufwand als zu groß an.
Heiko auch dir ein Danke für den Link!
Das mit den Datenbanken anlegen klingt ganz gut.
Ich bin mir zwar unsicher ob das jetzt geht. Ich bin auch noch dabei mich in das Thema einzulesen.
Ich denke mal eine mögliche Option wäre auch die 3 höchsten Werte pro User innerhalb der Zeitspanne zu bestimmen.
Diese dann in eine neue oder leere Datenbank ausgeben und von der dann die Abfrage mit der Summe machen.
Oder das mit einer verschachtelten Abfrage erreichen. Keine Ahnung momentan wie das gehen soll aber die Richtung klingt auch ganz gut.
Bedeutet einfach momentan das nach hinten verschieben und in der Zwischenzeit sich ein bisschen schlauer zu machen!
Das Thema Mysql ist doch ein bisschen komplexer als ich vor 2 Wochen gedacht habe.
Auf jeden Fall haben mir die Beiträge jetzt soweit weitergeholfen das mir einige Befehle sich ein bisschen mehr erschlossen haben.
Schauen wir mal wie gut das Buch ist was ich mir zu dem Thema bestellt habe.
Lösung stelle ich dann vor sobald ich eine habe! :wink:
Schöne Herrausforderung ich liebe sowas kniffliges!
Gruß
Jörg
Zufällige Umleitung zu der Startseite einer meiner Domains
Meine ungewöhnlichen Tools
mic85
Informatiker
Beginner (44 Beiträge)
kein thema,
wenns konkret wird kannst du auch gerne von der nachrichten-funktion gebrauch machen
Liebe Grüße aus Mannheim,
Michael Kohl
kohl@websol-media.de
http://www.websol-media.de
gmmts
Projektleiter
Guru (183 Beiträge)
Wäre interessant zu wissen, was du vor hast. Vielleicht kann man dir dann einen einfachen Lösungsvorschlag machen.
Ja, knifflige Sachen sind toll
LG André Schneider
Projektleiter GMMTS Community
Eine Community mit vielen Funktionen, Datenschutz, Privatsphäre, Verschlüsselungen und vielem mehr.
Homepage: http://gmmts.de
E-Mail: kontakt@gmmts.de
[img]http://www.seitenreport.de/button.ph
Das Seitenreport Forum hat aktuell 5275 Themen und 36110 Beiträge.
Insgesamt sind 48360 Mitglieder registriert.
Beitrag erstellen
EinloggenKostenlos registrieren