web-dev-qa-db-ja.com

結果クエリからcount(*)を選択します

私はあなたから助けが必要です、これは私のSQLクエリです:

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

これは私の結果です:

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

そして今、私は最初のクエリからの結果を数える必要があります!

Expected result: 4 
35
Butters

別の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 Demoを使用

count(SID)が機能するには、列エイリアスが必要であり、サブクエリ自体にエイリアスを提供する必要があります。

57
Taryn

これにより、内部クエリの行がカウントされます。

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'
2
dan1111

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)

動作するはずです

1
Daniel Mács