我想知道如何在查询树中表示avg和group?
我有这样的查询:
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模块让我担心 - 它们是如何绘制的?
答案 0 :(得分: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
此外,您可以考虑向表中添加适当的索引。