Berechnung Klammerschnitt

W4r10rd

Well-known member
ID: 260440
L
17 Oktober 2006
437
60
Irgendwas scheint beim berechnen des Durchschnitts der Klammerbewertung zu haken. Laut Sys und Punkten werden 5 Bewertungen gezählt, obwohl bei mir nach den Infos (neueste je User + jünger als 465 Tage) nur 4 gültig wären.

siehe screens...

aktueller Schnitt mit Bewertungsregeln:
klamm_bug_klammern1.jpg

Übersicht der Bewertungen:
klamm_bug_klammern2.jpg
 
?

Es zählen 4.
0 + 5 + 5 + 5 = 15 / 4 = 3,75.

Edit: Achso ... das Ganze hat nen kleinen Cache. Mittlerweile stimmt es. So wie ich das sehe, hat er zunächst Sandras vorige 0 noch mitgezählt ...

Edit2: Bug gefunden.
Ich hab erst die Bewertung neu berechnet und dann diese "alte kicken" Routine ausgeführt. :ugly:
 

Anhänge

  • Unbenannt-1.gif
    Unbenannt-1.gif
    8,6 KB · Aufrufe: 21
kk, mit nem zweistufigen Durchlauf mit Cache hatte ich jetzt nicht gerechnet.:mrgreen:
Naja, dieses "nur die neueste Bewertung pro User" berechne ich nicht on-the-fly
mit nem self-join, sondern ich markiere jeweils die neueste Bewertung in einem Zwischenschritt, sodass ich das AVG direkt darüber dann effizient berechnen kann. Diese Markierung muss ich natürlich VOR dem AVG durchführen. Soweit die technische Begründung. ;)
 
?

Es zählen 4.
0 + 5 + 5 + 5 = 15 / 4 = 3,75.

Edit: Achso ... das Ganze hat nen kleinen Cache. Mittlerweile stimmt es. So wie ich das sehe, hat er zunächst Sandras vorige 0 noch mitgezählt ...

Edit2: Bug gefunden.
Ich hab erst die Bewertung neu berechnet und dann diese "alte kicken" Routine ausgeführt. :ugly:

Ähm, In dem ersten Screen werden 5 votes gerechnet und es ergibt ein Ergebnis von 3.

In dem Bewertungsscreen sind bei mir die letzten 5 Bewertungen 0+5+5+5+5:5=4, es steht im ersten Screen, aber 3.

Muss , dann da nicht ein anderer Fehler vorliegen?

Edit:
Es sieht danach aus, das die letzten fünf Bewertungen, zur Rechnung herangezogen wurden, also einschließlich Cybo´s.
 
Zuletzt bearbeitet:
Ne, die Bewertung #14 hatte da noch mitgezählt, wobei sie ja eigentlich durch die neueste überschrieben wurde. Sonst hatten alle so gezählt wie markiert.
 
Naja, dieses "nur die neueste Bewertung pro User" berechne ich nicht on-the-fly[...]

so gesehen gar nicht so doof. Bei n paar Hundert Datensätzen (oder hier nem guten Dutzend) mach ich mir zu selten die Mühe, über Optimierung nachzudenken^^

Edit:
Es sieht danach aus, das die letzten fünf Bewertungen, zur Rechnung herangezogen wurden, also einschließlich Cybo´s.

Richtig, Sandras 5er war bereits raus, durch die "falsche" Reihenfolge der Queries wurde lediglich der 1. 0er von ihr noch mit erfasst.

Edit: zu lahm. Lasst einen doch erstmal wach werden ;)
 
so gesehen gar nicht so doof. Bei n paar Hundert Datensätzen (oder hier nem guten Dutzend) mach ich mir zu selten die Mühe, über Optimierung nachzudenken^^
Bei nem Self-Join wird ja schon die ganze Tabelle angefasst. Und die hat aktuell knapp 1.000.000 Bewertungen ... ich hab mir Gedanken dazu auch erst gemacht, als ich merkte, dass es zu langsam wird, wenn ich es "einfach so" mit ner Query berechne. ;)
 
Ne, die Bewertung #14 hatte da noch mitgezählt, wobei sie ja eigentlich durch die neueste überschrieben wurde. Sonst hatten alle so gezählt wie markiert.

Ich glaube wir reden gerade aneinander vorbe.

Ich kann, nicht sehen was berechnet worden ist.

So wie es markiert ist, ist es doch richtig. (#11 bis #16 -(#13 + #14)) = 15:4= 3,75.

Im ersten Screen, wird durch 5 geteilt und das Ergebnis ist 3.

Wo jetzt welche Bewertung im Skript, herangezogen wird, kann ich nicht herausfinden.

Der Fehler, ist aber der Teiler, wodurch ein falsches Ergebnis erziehlt wird.
 
Richtig: Zählt so wie auf dem Bild. Teiler = 4 :arrow: 3,75

Vorher:
#16 (0) + #15 (5) + #14 (0) [FALSCH] + #12 (5) + #11 (5) = 15.
Teiler = 5 (was auf die falsche Auswahl bezogen aber richtig ist)
0+5+0+5+5 = 15 / 5 = 3.

Alles klar? ;)

Edit:
Die #13 war durch ne Cache-Aktualisierung nach der #14er Bewertung schon korrekt invalidiert, wurde daher beim Screen nicht falsch gezählt. Der Screen entstand aber direkt nach der #16 Bewertung - bevor die nächste Korrektur greifen konnte. Also war die #14 noch nicht invalidert und wurde zusammen mit der #16 in die Berechnung genommen (statt nur der 16).
 
Richtig: Zählt so wie auf dem Bild. Teiler = 4 :arrow: 3,75

Vorher:
#16 (0) + #15 (5) + #14 (0) [FALSCH] + #12 (5) + #11 (5) = 15.
Teiler = 5 (was auf die falsche Auswahl bezogen aber richtig ist)
0+5+0+5+5 = 15 / 5 = 3.

Alles klar? ;)

Edit:
Die #13 war durch ne Cache-Aktualisierung nach der #14er Bewertung schon korrekt invalidiert, wurde daher beim Screen nicht falsch gezählt. Der Screen entstand aber direkt nach der #16 Bewertung - bevor die nächste Korrektur greifen konnte. Also war die #14 noch nicht invalidert und wurde zusammen mit der #16 in die Berechnung genommen (statt nur der 16).

Habe mir erlaubt, in der zitierten Aussage von dir, zu unterstreichen, was ich dabei nicht verstehe.

*Grübel* Was mir unklar ist, warum der Teiler aktuell 4 ist, aber vorher 5 war.
Denn dann hätte das Ergebnis, doch schon nach der 15ten Bewertung (wo der Teiler schon 4 ist) fehlerhaft sein müssen oder übersehe ich dabei, noch etwas anderes?
 
Vorher war eine Bewertung die eigentlich nicht mehr zählen durfte mit in die "Menge der zählenden" gerutscht. Die Menge der zählenden war somit 5 Elemente groß (statt wie jetzt korrekt: 4). Wenn Du das nun nicht verstehst, kann ich Dir auch nicht mehr helfen. ;)
 
Vorher war eine Bewertung die eigentlich nicht mehr zählen durfte mit in die "Menge der zählenden" gerutscht. Die Menge der zählenden war somit 5 Elemente groß (statt wie jetzt korrekt: 4). Wenn Du das nun nicht verstehst, kann ich Dir auch nicht mehr helfen. ;)

Sorry, viele Wege führen nach Rom. nur den schönsten, zu finden, ist nicht so einfach. :ugly:

Erlaubst Du mir, dennoch zwei Fragen?

War es nun, ein Fehler oder zwei?
 
Es war ein Fehler.

Bei jedem User der Dich bewertet hat, ist die aktuellste Bewertung dieses Users markiert. Fälschlicherweise waren in diesem Fall die letzten *beiden* Bewertungen von Sandra als "aktuellste" markiert. Das war der Fehler und kann jetzt nicht mehr passieren.
 
Danke, für die sehr ausführliche Auskunft.
Du musst die ruhe wech haben.:ugly:
Mit einer Engelsgeduld :angel: , hast Du meinem Wissensdurst, zu wertvollem Input verholfen. :mrgreen: