mysql - 下面的SQL查询为什么会出错?

标签 mysql sql

/* erroneous query */
select dept name, ID, avg (salary)
from instructor
group by dept name;

我知道每一个非聚合函数如果出现在select中就一定出现在group by中。然而,此查询仍在 mySQL 中运行。

应该是:

/* erroneous query */
select dept name, ID, avg (salary)
from instructor
group by dept name, **ID**;

因为我运行了两个查询并且它们给出了完全相同的答案!

最佳答案

MySQL 将允许您在分组依据中不包含非聚合列,这对我来说是个糟糕的主意。这可能会导致一些非常不可预测的结果。这是文档的链接: Clicky!

关于mysql - 下面的SQL查询为什么会出错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20847174/

相关文章:

java - 无限循环数据库检查

SQL 将重复项提取到 Access 中的新表中

php - 使用 Stunnel 通过 Web 服务器向 MySQL 服务器提交表单数据?

mysql - 获取每个月的交易余额

mysql - groovy : Retrieving diff value 中的 BigDecimal 值存在问题

sql - 如何在 PostgreSQL 中通过数组正确创建多个条目?

mysql - 根据表的值组合获取记录

mysql - 在列名上使用 % 的 LIKE 语句,但行重复

MySQL:计算某些值

mysql - SQL 仅选择列上具有最大值的行