Mailinglisten-Archive |
Wie gesagt, sorry für das verunfallte Quoting - ich würde es echt gerne anders machen, doch das kostet sehr viel Arbeit! Soll ich dann lieber gar nichts quoten? Auch blöd, vor allem da dank Notes das Threading nicht funktioniert :(( | Äh, welche Zeile von den vielen, die durch das group by zusammengefasst | werden, | hättest du denn dann gern als Zeilenwert ? Nun, gar keine *G* Mich interessiert nur das Ergebnis der Avg() Funktion - die einzelnen Zeilen sind mir echt egal :] Das was ich suche steht ja nur indirekt in der Tabelle - indirekt in so fern, als das ich den Wert erst durch das zusammenfassen von mehreren Zeilen rausfinden kann. Nehmen wir an, es gäbe folgende Werte in der Tabelle ID User Vote 1 1 3 2 2 1 3 1 2 4 1 -3 5 4 -2 6 3 0 Und nehmen wir weiter an, ich hätte folgendes Select Statement mit diesen Werten in der Ausgabe: SELECT Avg(Vote) as Stimme, User from Tabelle ORDER BY Stimme DESC GROUP BY User Dies gibt mir dann ca. dies aus: Stimme User 1 2 0.66 1 0 3 -2 4 Mein Problem ist nun, das ich für User='1' wissen möchte, in der wievielten Zeile er steht. Dies ist deshalb interessant, da ich festgelegt habe, das man um so besser ist, desto mehr Punkte man hat. User 2 hat die meisten Punkte (Spalte "Stimme") und steht somit an der Spitze, bzw. an 1. Stelle, bzw. in Zeile 1 (was alles das gleiche ist, nur in anderen Beschreibungen). Wo aber steht User '1'? Er steht in Zeile 2, somit hat er also den 2. Platz erreicht. Für 4 User wie ich es hier gezeigt habe ist es wahrscheinlich echt performanter, wenn ich durch die Zeilen durchloope - wie aber sieht's bei 1000 oder gar 10000 aus wenn ich auch noch ausgerechnet nach dem User such, der in der letzten Zeile steht? Dann muß ich 1000 oder 10000 durchläufe machen - und soweit ich weiß sind loops nicht so direkt die Stärke von PHP, oder? Darum möchte ich das ganze halt direkt in MySQL machen. Wie bereits angedeutet bin ich auch bereit dafür eine temporäre Tabelle anzulegen - geht das schnell? Versteht Ihr was ich will? *G* Gloss Mathias <Mathias.Gloss_(at)_start.de> on 30.01.2001 14:16:35 Bitte antworten an mysql-de_(at)_lists.4t2.com An: "'mysql-de_(at)_lists.4t2.com'" <mysql-de_(at)_lists.4t2.com> Kopie: (Blindkopie: Alexander Skwar/de/delphiauto) Thema: AW: Antwort: Re: Ausgegebene Zeilen zählen lassen? Hi du oben-quoter ;-) (http://learn.to/quote) > ---------- > Von: alexander.skwar_(at)_delphiauto.com[SMTP:alexander.skwar_(at)_delphiauto.com] > > Okay, ich sehe, ich hätte doch direkt alles schreiben sollen *G* > > Ja, aber die Zeilen stammen nicht direkt aus einer Tabelle, sondern sind > zusammengefasst. > In echt sieht das Query etwa so aus: > > SELECT Avg(Vote) as Stimme, Name From Bewertung ORDER BY Stimme GROUP BY > Name > > Da ich "GROUP BY" verwende, kann ich nicht auf einen Wert aus einer Zeile > zugreifen, da ich ja halt mehrere Zeilen zu einer zusammengefasst habe. > Und da dies eben nicht geht, suche ich eine Möglichkeit, durch die ich > *DIREKT* > die *aktuelle* Zeilennummer mit ausgegeben bekomme. Für das was ich suche > hilft > mir also keine AutoIncrementing Spalte. > Hmm, wie kann ich die Werte, die ich von einem SELECT zurückbekomme in > eine > andere Tabelle einfügen? > Ich überlege gerade, das ich evtl. dafür eine temporäre ISAM Tabelle > erzeuge, > die dann halt eine Auto Incrementing Spalte enthält. > Aber wie bekomme ich die Wert aus dem Select in die neue Tabelle? > Äh, welche Zeile von den vielen, die durch das group by zusammengefasst werden, hättest du denn dann gern als Zeilenwert ? So ganz hab ich das Problem noch nicht erfasst *grübel* Viele Grüße, Mathias --- *** Weitere Infos zur Mailingliste und MySQL unter http://www.4t2.com/mysql --- *** Weitere Infos zur Mailingliste und MySQL unter http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive