我目前有这两张桌子。
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。有什么建议?
答案 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;