2017-05-16 10 views
-3

私は平均的な機能について学習し、次のようにそれを試しています返さない:のMySQL AVG()関数は、正しい値

アカウント表使用してopen_emp_idフィールド:

+-------------+ 
| 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 | 
+-------------+ 

私のSQLクエリ:

SELECT avg(open_emp_id) 
FROM account; 

マイ結果:

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

結果はどのように10ですか?

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

+5

4行がないため、さらに多くのことがあります。あなたの計算は 'AVG(DISTINCT open_emp_id)'ですが、 'AVG(DISTINCT)'を決して使用しないことをお勧めします。 –

+0

@GordonLinoffなぜ私はユーザーが 'avg(distinct)'にならないの? – user3809875

答えて

1

avg(expression)機能は、すべての入力値の平均値を返します。

あなたは8 1有する年代の= 8

あなたが持っている7 10 S = 70

あなたは3 13有する年代= 39

あなたは6 16年代を持っ= 96

上記を合わせたものはすべて213です。

したがって、合計213個の入力要素があります。213/24 = 8.875

関連する問題