【发布时间】:2016-09-23 11:16:41
【问题描述】:
我尽量只选择体重超过所有狗平均体重的狗。
我有这个 SQL 查询:
SELECT nameAni, weigth
FROM Animal
WHERE idTpAni IN (SELECT idTpAni
FROM TypeAnimal
WHERE libTpAni = 'DOG')
GROUP BY nameAni
HAVING AVG(weigth) < weigth;
如果我给小费 30 而不是 AVG(weigth),我会得到我想要的结果。
你能解释一下为什么我在输入“AVG(...)”时没有结果吗?
【问题讨论】:
-
您不需要
group by重量,或者至少在列中使用AVG()之类的聚合吗? -
命令只是为了显示狗的名字和体重,所以如果我这样做,我会不服从。但是,出于测试目的,我在选择中添加了一个 AVG() (没有分组依据/有),然后我只得到一行(找到的第一只狗和所有狗的平均值)。