好吧,考虑我有一个数据库与一个表称为表A。 表A有Id int,sum int。 Supose我希望表A的总和值大于总和值的平均值。奇怪(未知)MySql行为
为此,我做了两个疑问:
SELECT
a.id
FROM
TableA a,
(SELECT AVG(sum) AS mes FROM TableA) b
WHERE
a.sum>b.mes;
SELECT
a.id
FROM
TableA a
WHERE
a.sum > (SELECT AVG(a.sum))
GROUP BY
a.id;
的方式我认为这些查询是相同的,但结果是正常的第一和空第二。
我的问题很简单,第二个查询中是否有逻辑错误?如果是,有人可以解释为什么吗?
因此,这意味着在第二个查询中,我将表中的结果集与另一个表进行比较,而不是结果集? – HasS
更新答案请查看 –
在第二个查询您的使用组,所以它将组使用a.id,然后取平均每个组,使平均值将等于它的值 –