SELECT nombre de groupes résultant d'une requête GROUP BY

J'ai essayé la requête suivante pour sélectionner le nombre de groupes résultant d'une requête GROUP BY:

SELECT count(*) FROM ( SELECT count(*) FROM MyTable WHERE Col2 = 'x' GROUP BY Col1 ) 

Malheureusement, cette requête n'est pas valide: Incorrect syntax near ')'. .

Note: Je veux get exactement une ligne (j'ai déjà trouvé une solution avec n fois le résultat, où n = le nombre de groupes).

 SELECT count(*) FROM ( SELECT 1 as dummy FROM MyTable WHERE Col2 = 'x' GROUP BY Col1 ) dt 

Pas besoin de countr les lignes dans la sous-requête, le résultat sera le même quand même.

 SELECT COUNT(*) FROM ( SELECT value = COUNT(*) FROM MyTable WHERE Col2 = 'x' GROUP BY Col1 ) е 

mais je pense – vous devez essayer cette requête –

 SELECT COUNT(DISTINCT Col1) FROM MyTable WHERE Col2 = 'x' 

Vous devez mettre des noms sur les colonnes et les tables …

 SELECT count(*) Total FROM ( SELECT count(*) Groups FROM MyTable WHERE Col2 = 'x' GROUP BY Col1 ) a