[SQL] 2 COUNT(*) dans une même requête

Voilà j’ai une requête très simple du genre

et j’aimerais savoir si il serait possible de la fusionner facilement avec un truc du genre

afin d’avoir les résultats des 2 types de COUNT(*) dans la même requête.
Ce que je vois au premier abord ça serait d’utiliser une sous requête du genre

mais je trouve que ça fait assez “sale” (je ne parle même pas des performances).

Des idées?

SELECT username, COUNT(*), COUNT(CASE WHEN FlagMachine = 1 THEN 1 ELSE NULL END) FROM TableBidule GROUP BY username

Edit : Testé sur Sql Server, mais normalement compatible ANSI

Flagmachine prends combien de valeurs?

D’un point de vue exterieur et peut etre un peu a coté de la plaque, je ferais un group by username, flagmachine et je ferais les additions ensuite :smiley:

Super.
Merci :smiley:

Si c’est du Oracle :

select
count(*)
, username
, flagmachine
from …
where …
group by grouping sets (username, flagmachine)

Et tu auras tous tes résultats dans une seule table, ne reste qu’à choisir la ligne qui t’intéresse !