2016-12-04 115 views
-1

我是SQL新手,并且在计算我的SQL数据库中的平均数时出现问题。我有两列(对于该表唯一的ID和每个ID的价格),并且我需要分别计算每个ID的平均值。我的表看起来是这样的:SQL的平均水平

ID  PRICE 
--------------- 
1.   500 
1.   700 
1.   840 
1.   790 
1.   800 
2.  1500 
2.  1480 
2.  1620 
2.  1700 
2.  1560 

(有更多的ID号,但我猜的解决方案是相同的,无论ID是有多少,如果有一个解决方案)。

当我尝试计算平均值时,它将采用PRICE列中的所有值,但我需要计算ID 1,ID 2,ID 3,ID 4 ...的平均值。单独用于以后的计算。我试图在网上找到答案,但我失败了。甚至有可能以这种方式计算平均值,或者我需要另一种方法?

+1

可能重复的[在Sql Server中分组行的平均值](http://stackoverflow.com/questions/3100921/average-of-grouped-rows-in-sql-server) –

回答

1

这将是像

SELECT ID, AVG(PRICE) 
FROM SomeTable 
GROUP BY ID; 
0

我不知道你的数据是如何构成的。 你的描述建议没有平均需要。如果你确实有两列:ID,价格和ID是唯一的那么简单

SELECT id, price FROM table_name 

会给你平均值,因为有可能是每每(唯一的)ID只有一个价格。

但是那么你的问题没有意义。因此,假设id不是唯一的,并且可能有几行具有相同id和不同价格的行。在这种情况下,你需要一个GROUP BY子句。

SELECT id, avg(price) as avg_price FROM table_name GROUP BY id