gpt4 book ai didi

mysql - MySQL "GROUP BY NULL"是做什么的?

转载 作者:可可西里 更新时间:2023-11-01 07:23:37 37 4
gpt4 key购买 nike

我有一些正在维护的遗留代码,其中有一个我不理解的 SQL 查询。我希望这里有人可以向我解释这样做的目的。查询如下所示:

select * from product_performance 
where merchantid = 2151277 and clickday >= '2011-09-01'
group by null;

当我在末尾没有 group by null 的情况下运行此查询时,我得到 44 行。当我使用 group by null 运行它时,我得到 1 行——前一组中的第一行。这里发生了什么,使用这个分组的目的是什么?

最佳答案

它按常量值对整个查询进行分组,这使得它可以有效地随机选择一行返回。使用 LIMIT 1 可以获得相同的结果。

请注意,此惯用法不是标准 SQL,如果您在其他数据库中尝试它可能会导致错误。在 MySQL 中,您可以通过指定 ONLY FULL GROUP BY 来禁用此行为。 SQL模式。参见 the documentation了解更多详情。

OTOH,LIMIT 1 也是非标准的,但得到更广泛的支持,并且在符合 SQL:2008 的数据库中可以通过 FETCH ... ONLY 实现相同的效果 子句。参见 this有关详细信息。

关于mysql - MySQL "GROUP BY NULL"是做什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7404578/

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