48

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

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

这是我的结果:

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

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

Expected result: 4 
4

3 回答 3

81

您可以将查询包装在另一个中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

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

于 2012-12-12T10:45:16.477 回答
7

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

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'
于 2012-12-12T10:33:35.660 回答
1

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

应该有效

于 2012-12-12T10:33:20.440 回答