Précédent   Forum du club des développeurs et IT Pro > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > SAS Base
SAS Base Forum d'entraide sur SAS base : étape data, procédures non statistiques, procédures non graphiques, SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 01/01/2013, 13h55   #1
marineapt
Invité de passage
 
Femme
Étudiant
Inscription : janvier 2013
Messages : 3
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Alimentation

Informations forums :
Inscription : janvier 2013
Messages : 3
Points : 1
Points : 1
Par défaut Renvoi nombres valeurs distinctes

Bonjour,
J'ai une table avec pour chaque individu, des groupes associés. Il y a plusieurs lignes par individu, et plusieurs groupes à chaque fois. J'ai donc un tableau de la sorte :

Individu Groupe
1 6
1 6
1 7
1 2
2 23
2 23
2 23

Je cherche à écrire un code qui me renvoie, pour chaque individu, le nombre de valeurs de groupe distinctes. Par exemple je voudrais n=3 pour l'individu 1, n=1 pour l'individu 2.
Dans la mesure du possible, j'aimerais éviter de devoir créer une nouvelle table (si l'on enlevait les doublons par exemple et que l'on avait ensuite plus qu'à compter le nombre d'observations par individu). J'ai plusieurs colonnes de groupe pour chaque individu, donc je voudrais éviter de créer une nouvelle table pour chacune des colonnes.

Merci de votre aide !
marineapt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2013, 10h35   #2
datametric
Rédacteur
 
Homme Stéphane Colas
Consultant et formateur SAS et Cognos
Inscription : avril 2009
Messages : 2 299
Détails du profil
Informations personnelles :
Nom : Homme Stéphane Colas
Âge : 40
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Consultant et formateur SAS et Cognos
Secteur : Conseil

Informations forums :
Inscription : avril 2009
Messages : 2 299
Points : 5 530
Points : 5 530
c'est assez simple en SQL :

Code :
1
2
3
4
5
6
proc SQL;
CREATE TABLE lameme AS 
SELECT * , count(DISTINCT groupe) AS nbgroupe 
FROM lameme
GROUP BY Individu;
quit;
tu peux répéter le count dans la même requête tant que le group by est Individu.
__________________
N'oubliez pas de cliquer sur lorsque votre problème est réglé !

Moteur de recherche dans les papiers SAS
datametric est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 02/01/2013, 14h49   #3
marineapt
Invité de passage
 
Femme
Étudiant
Inscription : janvier 2013
Messages : 3
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Alimentation

Informations forums :
Inscription : janvier 2013
Messages : 3
Points : 1
Points : 1
Génial ! Merci beaucoup.
Une dernière question... Pour l'instant dans la table que je viens de créer je n'ai que les nombres de groupes. Comment je fais pour avoir auss l'identifiant de chaque individu en face du nombre de groupes ? Ce qui ferait :
Individu Nbgroupe
1 3
2 1
marineapt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2013, 15h25   #4
tdiallo
Membre régulier
 
Homme Thierno Diallo
SID
Inscription : mai 2012
Messages : 40
Détails du profil
Informations personnelles :
Nom : Homme Thierno Diallo
Localisation : France, Finistère (Bretagne)

Informations professionnelles :
Activité : SID
Secteur : Santé

Informations forums :
Inscription : mai 2012
Messages : 40
Points : 77
Points : 77
Bonjour,

Tu rajoutes au niveau de ton select la variable individu.

Code :
1
2
3
4
5
6
7
 
proc SQL;
CREATE TABLE lameme AS 
SELECT individu, count(DISTINCT groupe) AS nbgroupe 
FROM lameme
GROUP BY Individu;
quit;
tdiallo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2013, 16h18   #5
marineapt
Invité de passage
 
Femme
Étudiant
Inscription : janvier 2013
Messages : 3
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Alimentation

Informations forums :
Inscription : janvier 2013
Messages : 3
Points : 1
Points : 1
Super ! Merci pour la rapidité !
marineapt est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 16h59.


 
 
 
 
Partenaires

Hébergement Web