查找具有聚合计数的记录的平均值

时间:2015-05-22 18:39:21

标签: sql sql-server

我试图在表中找到包含每条记录中的计数的平均值。

我需要找到平均值,好像记录中列出的每个计数都有个别记录。

例如:

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

当我单独平均值时,结果为2.66667。如何从具有计数的记录中获得相同的结果?

SQL Fiddle

2 个答案:

答案 0 :(得分:3)

您想要加权平均值:

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

答案 1 :(得分:0)

我认为你正在寻找这样的东西:

select (sum(value_to_average)*sum(number_of_records))/cast(sum(number_of_records) as double)  
from table