gpt4 book ai didi

sql - SELECT 列表中的所有列是否都必须出现在 GROUP BY 子句中

转载 作者:行者123 更新时间:2023-12-03 06:18:51 24 4
gpt4 key购买 nike

我的讲师说:

All column names in SELECT list must appear in GROUP BY clause unless name is used only in an aggregate function.

我只是想对此进行一些确认,因为我想不出一个合乎逻辑的解释来解释为什么它应该是真的。

最佳答案

想象一下以下情况:

    A    B    C
Cat 10 False
Dog 25 True
Dog 20 False
Cat 5 False

如果您选择 A、B 并仅按 A 进行分组 - 您的输出会是什么?你只有两行(或元组),因为 A 有两个值 - 但它如何显示 B?

如果按 A、B 分组,您将得到四行,没有问题。如果按 A 分组并对 B 执行函数 - 如 SUM(B),那么您会再次得到两行:

    Cat    15
Dog 45

但是如果您选择 A、B 并且仅按 A 分组 - 它不知道该怎么做。说实话,我相信有些数据库会在这种情况下为 B 选择一个随机值,并且我相信有些数据库会给您一条错误消息。

关于sql - SELECT 列表中的所有列是否都必须出现在 GROUP BY 子句中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5986127/

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