Mysql 如何消除GROUPBY中使用的SELECT子句标签的歧义?
我有一个问题:Mysql 如何消除GROUPBY中使用的SELECT子句标签的歧义?,mysql,Mysql,我有一个问题: SELECT ... (some expression) AS Country FROM Sometable ... GROUP BY Country; Sometable有一个名为Country的列(无法更改) 其中一个结果列名为Country(这也不能更改) 它是有效的(我希望groupby应用于结果列,这也是MySQL理解它的方式) 但它发出了警告: Warning: Column 'Country' in group statement is amb
SELECT
...
(some expression) AS Country
FROM
Sometable
...
GROUP BY Country;
有一个名为Sometable
的列(无法更改)Country
- 其中一个结果列名为
(这也不能更改)Country
groupby
应用于结果列,这也是MySQL理解它的方式)
但它发出了警告:
Warning: Column 'Country' in group statement is ambiguous
因此,我想通过消除组的歧义。但我能找到的唯一限定符是指定数据库或表(如:Sometable.Country
)。如果在两个不同的表中使用标签就可以了,当然如果我想选择来自一个表的标签实例的话。但是我需要某种Select.Country
限定符来指定我要使用的名称是Select
子句中的名称,而不是表中的名称
我觉得有点奇怪,如果我想选择标签的两个实例(表的列)中的一个,可以删除此警告,但如果我想选择另一个实例(结果的列),则不能删除此警告。如果这是您想要分组的表达式,您可以执行以下操作:
Group By (some expression)
即,不要在Group By中使用别名。使用表达式本身。唯一的其他方法是用表达式将查询封装到派生表/子查询中
Group By (some expression)