SQL查询 - 用子查询计数



我想获取查询中检索到的所有列的计数。我使用了以下代码:

select count (*) 
from ( 
   select distinct ID,salary,name,location 
   from test 
) ;

我收到一条错误消息:

错误的错误;期望为,id或Quoted_id

当我添加如下:

select count (*) 
from (
   select distinct ID,salary,name,location 
   from test 
) as count;

查询现在可以使用,但列名没有重命名为给出的别名。这背后的逻辑是什么?

在SQL中,您必须给子查询。因此,这就是第二个查询有效的原因,第一个查询失败

我不知道您要实现什么,但是要纠正这将是

select count (*) from (select distinct ID,salary,name,location from test ) as myTAble; 

子查询将充当您的桌子,因此需要一个 名称或别名

您正在向表而不是列提供别名。以下查询将起作用。

select count (*) As count
    from (
       select distinct ID,salary,name,location 
       from test 
    ) as tbl;

最新更新