从结果查询中选择count(*)

时间:2012-12-12 10:29:00

标签: sql sql-server select

我需要你的帮助,这是我的SQL查询:

select count(SID) 
from Test 
where Date = '2012-12-10' 
group by SID

这是我的结果:

|2|
|3|
|4|
|3|

现在我必须计算第一次查询的结果!

Expected result: 4 

3 个答案:

答案 0 :(得分:53)

您可以将查询包装在另一个SELECT

select count(*)
from
(
  select count(SID) tot  -- add alias
  from Test 
  where Date = '2012-12-10' 
  group by SID
) src;  -- add alias

请参阅SQL Fiddle with Demo

为了使其工作,count(SID)需要列别名,您必须为子查询本身提供别名。

答案 1 :(得分:1)

select count(*) from(select count(SID) from Test where Date = '2012-12-10' group by SID)从(选择计数(SID)中选择计数(*),其中日期='2012-12-10'按SID分组

应该有效

答案 2 :(得分:1)

这会计算内部查询的行数:

select count(*) from (
    select count(SID) 
    from Test 
    where Date = '2012-12-10' 
    group by SID
) t

然而,在这种情况下,其效果与此相同:

select count(distinct SID) from Test where Date = '2012-12-10'