web-dev-qa-db-fra.com

Sélectionnez le nombre (*) dans la requête de résultat

J'ai besoin de votre aide, voici ma requête SQL:

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

voici mon résultat:

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

et maintenant je dois compter les résultats de la première requête!

Expected result: 4 
35
Butters

Vous pouvez encapsuler votre requête dans un autre SELECT:

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

Voir SQL Fiddle with Demo

Pour que cela fonctionne, la count(SID) a besoin d'un alias de colonne et vous devez fournir un alias à la sous-requête elle-même.

57
Taryn

Cela compte les lignes de la requête interne:

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

Cependant, dans ce cas, l'effet est le même que celui-ci:

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) sélectionnez le nombre (*) de (sélectionnez le nombre (SID) de Test où Date = '2012-12-10' groupe par SID)

devrait fonctionner

1
Daniel Mács