2017-05-16 3 views
-3

ich über die durchschnittliche Funktion lerne und versucht, es wie folgt:MySql avg() Funktion nicht korrekten Wert zurückkehr

Konto Tabelle mit open_emp_id Feld:

+-------------+ 
| open_emp_id | 
+-------------+ 
|   1 | 
|   1 | 
|   1 | 
|   1 | 
|   1 | 
|   1 | 
|   1 | 
|   1 | 
|   10 | 
|   10 | 
|   10 | 
|   10 | 
|   10 | 
|   10 | 
|   10 | 
|   13 | 
|   13 | 
|   13 | 
|   16 | 
|   16 | 
|   16 | 
|   16 | 
|   16 | 
|   16 | 
+-------------+ 

My SQL-Abfrage:

SELECT avg(open_emp_id) 
FROM account; 

Mein Ergebnis:

+------------------+ 
| avg(open_emp_id) | 
+------------------+ 
|   8.8750 | 
+------------------+ 

Wie ist das Ergebnis nicht 10?

(1+ 10 + 13 + 16)/4 = 10

+5

Weil Sie nicht 4 Reihen haben, haben Sie viel mehr. Ihre Berechnung ist 'AVG (DISTINCT open_emp_id)' - aber ich rate Ihnen, 'AVG (DISTINCT)' niemals zu verwenden. –

+0

@GordonLinoff warum sollte ich nicht 'avg (distinct)'? – user3809875

Antwort

1

avg(expression) Die Funktion gibt den Mittelwert aller Eingangswerte.

Sie haben 8 1 's = 8

Sie haben 7 10 s = 70

Sie haben 3 13' s = 39

Sie haben 6 16 ‚s = 96

Alle oben genannten zusammen sind 213.

Sie haben insgesamt 24 Eingangselemente somit 213/24 = 8,875

Verwandte Themen