2015-05-22 3 views
-1

Я пытаюсь найти среднее значение в таблице, которая включает в себя счет в каждой записи.Найти среднее значение для записей с агрегированным счетом

Мне нужно найти среднее значение, как если бы были отдельные записи для каждого счета, указанного в записи.

Например:

+-------+------------------+-------------------+ 
| Color | Value_to_Average | Number_of_Records | 
+-------+------------------+-------------------+ 
| Red |    3 |     2 | 
| Red |    2 |     3 | 
| Green |    5 |     2 | 
| Blue |    1 |     2 | 
+-------+------------------+-------------------+ 

Когда я усреднить значения по отдельности, то результат будет 2,66667. Как я могу получить тот же результат из записей с подсчетами?

SQL Fiddle

+0

Ваш вопрос не очень понятно. Это так же просто, как Value_To_Average/Number_Of_Records ??? –

ответ

3

Вы хотите средневзвешенное:

select sum(Value_to_Average * Number_of_Records)/sum(Number_of_Records) 
from Color_Avg t; 
+0

Спасибо! Так просто сейчас, когда я это вижу. – user955289

0

Я думаю, что вы ищете что-то вроде этого:

select (sum(value_to_average)*sum(number_of_records))/cast(sum(number_of_records) as double) 
from table 
Смежные вопросы