Ich habe einige Probleme beim Erstellen einer Abfrage, die mir den Durchschnitt einer Summe gibt. Ich habe ein paar Beispiele hier im Stackoverflow gelesen und konnte es nicht tun. Kann mir bitte jemand helfen, das zu verstehen? Dies sind die Daten, die ich habe:Durchschnitt einer Summe in Mysql Abfrage
Transaction_x0020_Number Product_x0020_Code Sales_x0020_Value Date Cashier
000356 350 24.99 2010-06-04 131
000356 726 32.99 2010-06-04 131
000357 350 24.99 2010-06-04 131
000358 350 24.99 2010-06-04 131
000358 360 24.99 2010-06-04 131
000770 703 69.99 2010-06-04 130
000771 726 32.99 2010-06-04 130
000772 1126 5 2010-06-04 130
000773 482 32.99 2010-06-04 130
000774 600 32.99 2010-06-04 130
000775 350 24.99 2010-06-04 130
Grundsätzlich brauche ich den durchschnittlichen Transaktionswert von Kassierer. Ich kann kein grundlegendes avg ausführen, weil es alle Reihen nimmt, aber jede Verhandlung kann mehrere Reihen haben. Am Ende möchte ich muss:
Cashier| Average|
131 | 44.31 |(Which comes from the sum divided by 3 transactions not 5 rows)
130 | 33.15 |
etc.
Dies ist die Abfrage Ich habe die Transaktionen zu summieren, aber nicht wissen, wie oder wo die AVG-Funktion enthalten.
SELECT `products`.`Transaction_x0020_Number`,
Sum(`products`.`Sales_x0020_Value`) AS `SUM of Sales_x0020_Value`,
`products`.`Cashier`
FROM `products`
GROUP BY `products`.`Transaction_x0020_Number`, `products`.`Date`, `products`.`Cashier`
HAVING (`products`.`Date` ={d'2010-06-04'})
Jede Hilfe wird geschätzt.
Ah, 8 Sekunden zuvor, gelöscht meine (obwohl ich nicht erinnern, eine d {} Syntax auf MySQL?). es ist nicht nötig, die Höhe einer Transaktion zu kennen, wenn sie tatsächlich gemittelt wird. – Wrikken
Eine Randnotiz: Beste Lösung, aber warum die HAVING-Klausel kopieren, anstatt nur eine WHERE, die verwendet werden sollte? – Wrikken
+1 das funktioniert. Nette Lösung wenn das HAVING behoben ist. –