effectuer un count avec conditions
Bonjour,
Je voudrais effectuer un count un peu particulier. J'ai le tableau suivant :
Code:
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:
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:
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:
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