0

我目前有这两张桌子。

t1
------|
pageid |

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

我正在尝试运行一个选择,它将从 t1 中一个一个地提取每个 pageid,然后与 t2 中的 pageids 进行比较(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 的 pageid 的所有平均年龄。但是,我需要对 t1 中的每个 pageid 条目执行此过程,而不仅仅是 1。有什么建议么?

4

1 回答 1

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;  
于 2013-11-14T19:22:00.073 回答