如何使用平均值进行分组?

How do I group by using an average?

我需要显示平均数量小于或等于 300 的商家的名称。

Table S:

BusNAME     BusNUM 
-------   ---------
  Bob        A1    
  Lee        A2      
  Ashley     A3  

Table SP:

BusNUM     QTY 
-------   ---------
A1         300    
A1         400     
A1         100 
A2         100
A2         100
A2         200
A3         400
A3         300

这就是我正在尝试的:

SELECT s.BusName
FROM S s
JOIN SP p ON p.BusNum = s.BusNum
GROUP By s.BusName
HAVING AVG(p.QTY) <= 300;

Select把BusNUMQty的平均值从tableSP变成临时的table,然后做一个正常的加入!你可以这样做:

SELECT S.BusName
FROM S, (SELECT BusNUM, AVG(QTY) AS Average
         FROM SP
         GROUP BY BusNUM) Temporal
WHERE S.BusNUM = Temporal.BusNUM
AND Temporal.Average <= 300;