2

我想知道 avg 和 group by 如何在查询树中表示?

我有一个这样的查询:

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 让我担心——它们是如何绘制的?

4

1 回答 1

1

您必须使用“Avg”,但要优化查询,您可以避免使用两个选择添加子句“Having”:

 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

此外,您可以考虑向表中添加适当的索引。

于 2012-07-10T23:29:42.497 回答