Zu dem COUNT() kann ich ja Stellung nehmen:
COUNT zählt bei GROUP BY nicht mehr die gesamten Zeilen einer Tabelle, sondern nur noch die Zeilen innerhalb einer Gruppe
Mfg
Sebmaster
Das ist es doch was ich möchte *grübel* ein User soll nicht 2x als Teilnehmer gelten, sondern nur 1x *think*COUNT zählt bei GROUP BY nicht mehr die gesamten Zeilen einer Tabelle, sondern nur noch die Zeilen innerhalb einer Gruppe
Diskutiere nie mit Idioten - sie holen Dich auf ihr Niveau und schlagen Dich dort mit Erfahrung!
Also ich verstehe eine Sache nicht
Warum denn das?Das sollte theoretisch folgendes ausgeben:
teilnehmer = 1
gesamt = 202
min = 202
max = 202
avg = 202
SUM(bis-von) :
SUM(303-101) = 202 Das ist soweit noch klar.
MIN(bis-von) = 202??? MIN sucht den Datensatz ,mit dem kleinsten Spalten-Wert heraus. Und das halt innerhalb der betroffenen Datensätze von GROUP BY. MAX und AVG macht im Prinzip genau das gleiche.
Ich spinn das mal weiter, um zu schauen, ob ich, das, was du haben möchtest, richtig verstehe :
---------------------
| uid | von | bis |
---------------------
| 1 | 0 | 100 |
| 1 | 101 | 203 |
| 2 | 30 | 150 |
| 2 | 0 | 200 |
| 3 | 100 | 300 |
Was genau erwartest du dann für eine Anzeige?
Etwa das :
teilnehmer : 3
gesamt : 953 - 231 = 722 ?
min : [Uid3 = 200], [Uid2 320], [Uid1: 202] also 200 ?
max : dementsprechend dann 320 ?
avg : (200+320+202) / 3 = 241 ?
Oder etwas ganz anderes?
Bei obigem Beispiel wirst du das wahrscheinlich mit einer einzigen Abfrage nicht lösen können. Zumindest würde mir nichts passendes dazu einfallen. Oder liege ich falsch ?