2012-06-18 75 views
2

我想知道如何将平均值和组在查询树中表示?使用avg绘制查询树?

我有这样的查询:

SELECT Stats.StuId, Stats.CrsAve 
FROM  (SELECT T.StuId, AVG(T.Grd) AS CrsAvg 
     FROM  Transcript T 
     WHERE T.Semester IN (‘F2004’, ‘S2006’) 
     GROUP BY T.StuId) AS Stats 
WHERE  Stats.CrsAvg > 3.5 

因此,模块GROUP BY和AVG担心我 - 他们是如何得出?

回答

1

您必须使用“平均”,而是要优化你能避免使用两个选择加入一个条款,“具有”查询:

SELECT T.StuId, AVG(T.Grd) AS CrsAvg 
     FROM  Transcript T 
     WHERE T.Semester IN (‘F2004’, ‘S2006’) 
     GROUP BY T.StuId 
having AVG(T.Grd) > 3.5 

此外,还可以考虑增加相应的索引表。