Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何消除GROUPBY中使用的SELECT子句标签的歧义?_Mysql - Fatal编程技术网

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)