gpt4 book ai didi

mysql - 添加 2 列和 2 列的 SUM 之间的 SQL 区别

转载 作者:太空宇宙 更新时间:2023-11-03 10:35:38 26 4
gpt4 key购买 nike

我基本上是 SQL 的新手,希望有一些简单的问题。

我正在阅读 sqlbolt 教程 ( https://sqlbolt.com/lesson/select_queries_order_of_execution ),并根据以下内容得到 2 个截然不同的答案:

SELECT director, SUM(domestic_sales + international_sales) 
as Cumulative_sales_from_all_movies
FROM movies
INNER JOIN boxoffice ON movies.id = boxoffice.movie_id
GROUP BY Director

对比

SELECT director, (domestic_sales + international_sales) 
as Cumulative_sales_from_all_movies
FROM movies
INNER JOIN boxoffice ON movies.id = boxoffice.movie_id
GROUP BY Director

我只是想知道区别。

谢谢你:)

最佳答案

第二个版本不是有效的 SQL,不应在任何数据库中工作。由于 MySQL 中的错误功能,聚合查询中允许使用“裸”列。

您应该设置数据库的配置,以便设置 ONLY_FULL_GROUP_BY(参见 here)。这样,MySQL 将符合标准 SQL 和几乎所有其他数据库。

有什么区别?第一个版本对同一导演的所有行的值求和。第二个版本从该主管的任意行返回总和。

关于mysql - 添加 2 列和 2 列的 SUM 之间的 SQL 区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48812168/

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