gpt4 book ai didi

mysql - 奇怪的(未知的)MySql 行为

转载 作者:搜寻专家 更新时间:2023-10-30 20:16:22 26 4
gpt4 key购买 nike

好的,假设我有一个数据库,其中有一个表称为表 A。表A有Id int,sum int。假设我想要表 A 的总和值大于总和值的平均值。

为此我做了两个查询:

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;

在我看来,这些查询是相同的,但第一个结果为 Ok,第二个结果为 Null。

我的问题很简单,第二个查询是否有逻辑错误?如果是,有人可以解释为什么吗?

最佳答案

是的,这两个查询不相等。因为在第一个查询中,您将它们视为两个单独的表并获取结果集并最终进行比较。

但是在第二个查询中你执行的聚合函数在这种情况下你会得到单个 a.id 的平均值

执行这个你就会明白我的意思了

Select a.id from TableA a where a.sum = (Select avg(a.sum)) group by a.id;

关于mysql - 奇怪的(未知的)MySql 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38147277/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com