Bonjour,

Je voudrais effectuer un count un peu particulier. J'ai le tableau suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
Couleur	     Nom		Valeur		Comptage
bleu		marion		vrai		2
bleu            vincent		vrai		2
bleu 		marion		vrai		2
bleu 		pierre		faux		2
bleu 		myrtille	faux	        2
jaune		pascal		vrai		3
jaune		françois	vrai		3
jaune		michèle	        faux		3
jaune		jean		vrai		3
jaune		michèle	        faux		3
vert		marie		vrai		4
vert		pierre		vrai		4
vert		vincent		vrai		4
vert		manon		vrai		4
Je voudrais compter le nombre de « Valeur » = vrai pour chaque couleur, mais en ne prenant en compte qu’une fois chaque prénom par couleur.
Exemple avec la couleur « bleu » :
il y a 5 lignes :
trois lignes à « vrai »
deux lignes à « faux»
4 prénoms.
Je voudrais donc que dans ce cas de figure ma requête me retourne la valeur comptage = 2 pour la couleur bleu (en comptant vincent et en ne prenant en compte qu'une fois le "vrai" de marion qui apparaît 2 fois).

J’arrive à effectuer le count dans un cas simple comme celui-ci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
Couleur	             Nom		Valeur
bleu		marion		vrai
bleu            vincent		vrai
jaune		pascal		vrai
jaune		françois	vrai
jaune		jean		vrai
vert		marie		vrai
vert		pierre		vrai
vert		vincent		vrai
vert		manon		vrai
grâce au code suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
proc SQL;
create table analyse as
select *, count(valeur) as comptage
from ma_table
where valeur = "vrai"
group by Couleur;
J’obtiens ainsi la table suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
Couleur	            Nom		Valeur		Comptage
bleu		marion		vrai		2
bleu          vincent		vrai		2
jaune		pascal		vrai		3
jaune		françois	vrai            3
jaune		jean		vrai		3
vert		marie		vrai		4
vert		pierre		vrai		4
vert		vincent		vrai		4
vert		manon		vrai		4
Merci d’avance de votre aide