2017-03-22 7 views
2

Ich möchte den täglichen Durchschnitt der Verkäufe von meinem SQL-Tabelle berechnen. Ich habe versucht, die folgende Abfrage verwenden, aber es gibt Fehlermeldung, dass „falsche Syntax nahe Stichwort wählen“berechnen täglichen durchschnittlichen Verkauf von SQL-Tabelle

select avg(select sum(total) from canteen group by date) as average from canteen 
+0

haben Sie laufen diese Abfrage in Ihrem DBMS oder in Java-Code? wenn in code sollte man es in Ihre Frage setzen –

Antwort

6

Funktionen nicht verschachtelt Aggregation tun. Dies ist, was Sie die Summe für jedes Datum erhalten möchten:

select day, sum(total) 
from canteen 
group by day; 

Sie erhalten den Durchschnitt mit einer Unterabfrage:

select avg(total) 
from (select day, sum(total) as total 
     from canteen 
     group by day 
    ) c; 

Oder eine einfachere Alternative:

select sum(total)/count(distinct day) 
from canteen; 
+0

Vielen Dank für die Hilfe –

0

Die korrekte Syntax ist

SELECT date, avg(total) average FROM (
SELECT date, sum(total)total FROM canteen GROUP BY DATE 
)AS A 
grouP BY date 
+0

das funktioniert nicht. Syntaxfehler –

+0

Jetzt überprüfen @MohitJoshi verpasste ich Gruppe von –

0

ich vor Wenn Sie sich nicht um verschachtelte Abfragen kümmern,

select avg(total) from(select sum(total) as total from canteen group by date) as T 
+0

diese Abfrage funktioniert nicht. –

+0

Fehler oder falsches Ergebnis? Die Abfrage wurde aktualisiert. Können Sie diese Abfrage versuchen? –

+0

jetzt funktioniert es. –

0

Es ist besser, wenn Sie versuchen, eine Unterabfrage wie folgt zu verwenden:

select avg(total) from(select sum(total) from canteen group by date) 
Verwandte Themen