在SQL Server 2016中,我在以下查询中错过了此错误:
select count(*)
from (select count(*), clave
from products
where state = 1
group by key
having count(*) > 1 );
如果插入了无效的字符或空格,我尝试将查询复制并粘贴到记事本中。
答案 0 :(得分:2)
您需要别名:
select count(*)
from (select count(*)
from products
where [state] = 1
group by [key]
having count(*) > 1
) t; -- t alias
考虑仅使用非SQL Server保留的单词或标识符,例如key
(尤其是在您的情况下)和many more。
第二件事,当在查询中包含group by
子句时,您应该注意带有表达式/列(在select
子句中可用的表达式/列或不在group by子句中,则应在该列/表达式中包含聚合函数。)
答案 1 :(得分:-1)
“键”是一个保留字,因此您不能使用它,因此应重命名它,结果是一个表,因此应给它一个别名。 尝试类似
select count(*)
from (select count(*), clave
from products
where state = 1
group by key1
having count(*) > 1 ) AS product_alias;
'