SQL查询 - 使用子查询计数

时间:2017-04-17 20:52:45

标签: sql sql-server-2008 count subquery

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

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

我收到一条错误消息:

  

错误的错误;期待AS,ID或quoted_ID

当我添加如下:

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

查询现在可以正常工作,但列名称未重命名为给定的别名。这背后的逻辑是什么?

3 个答案:

答案 0 :(得分:1)

在Sql中,您必须为子查询提供别名。这就是第二个查询工作原因,第一个查询失败的原因

答案 1 :(得分:1)

我不知道你想要达到的目的,但要纠正这个问题

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

子查询将作为您的表进行查询,因此它需要一个   名称或别名

答案 2 :(得分:0)

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

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