2013-11-14 115 views
0

我目前有这两个表。计算SQL中的列平均数

t1 
------| 
pageid | 

t2 
-------|------ 
pageid |age 

什么我想运行一个选择将由一个从t1拉各的pageid一个,然后比较到pageids在T2(T2可能有多个pageids使用相同的值),并获得平均在表t2中的所有年龄段,其值都是从t1开始的,我想为t1中的所有pageid做这件事。这是我目前的SQL语句,它最终取得所有平均值的平均值(如果需要,我可以详细说明)。

Select AVG(age) from t2 INNER 
JOIN t1 ON t2.pageid = t1.pageid;  

如果我使用下面的SQL语句

Select AVG(age) from t2 INNER 
JOIN t1 ON t2.pageid = 1; 

然后在T2值1所有pageids的所有平均年龄计算正确。但是,我不需要仅为1,我需要为t1中的每个pageid条目执行此过程。有什么建议么?

回答

1

你只需要添加t1.pageid在你选择一列,然后在该列添加GROUP BY,并摆脱pageid = 1过滤器:

Select t1.pageid, AVG(age) from t2 INNER 
JOIN t1 ON t2.pageid = t1.pageid 
group by t1.pageid; 
+0

就是这样。谢谢! – johns4ta