计算SQL中的列的平均值

时间:2013-11-14 19:20:04

标签: sql

我目前有这两张桌子。

t1
------|
pageid |

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

我想要的是运行一个选择,它将从t1逐个拉出每个pageid,然后与t2中的pageid进行比较(t2可能有几个具有相同值的pageid)并获得表中所有年龄的平均值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的所有pageid的所有平均年龄。但是,我将需要对t1中的每个pageid条目执行此过程,而不仅仅是1。有什么建议?

1 个答案:

答案 0 :(得分: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;