gpt4 book ai didi

mysql - Group by语句列名解析

转载 作者:行者123 更新时间:2023-11-29 06:34:43 28 4
gpt4 key购买 nike

我有这样的查询(现实中更多的列)

select 
custom_amend_column_function(colname) as colname
from source_table
group by colname

我经常使用这个结构。它似乎总是使用函数的输出而不是输入来对数据进行分组。今天我第一次将这条语句直接运行到一个新表中,如下所示:

create table new_table as
select
custom_amend_column_function(colname) as colname
from source_table
group by colname

奇怪的是,通过添加第一行,我收到一条错误消息,指出我的查询在组语句中使用了不明确的列名。

因为 group by 可以使用新的列名(即下面的工作)我一直期望 group by 将首先使用 select 语句中定义的列,然后在找不到名称的情况下查看基础表.

select 
custom_amend_column_function(colname) as new_colname
from source_table
group by new_colname

我说的对吗?错误信息对吗?我找不到为 SQL 标准或 MySQL 记录的任何地方。

我知道我可以通过创建一个新的列名来避免这种情况,但我想解决这个问题,因为如果它确实不明确,我可能需要审查现有的查询。

最佳答案

要跟踪问题,请执行以下操作

 EXPLAIN EXTENDED SELECT ...

根据您的查询。除了正常输出之外,这还会给您一个警告,其中包含优化器看到的查询。所有隐式重命名都在这里完成,因此您可以看到为什么列名不明确。

我想你可以通过说来解决这个问题

 ... GROUP BY 1

而不是在分组依据中提供列名。

关于mysql - Group by语句列名解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25662570/

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