Bonsoir,
Sur Excel j'avais mis en place une système de dédoublonnage sur les codes siret . Si la ligne du dessus a le même siret alors j'incrémente un compteur qui me donne le nombre maximum de personne rattaché à ce code par comptage.
Je souhaite faire la même chose sur SAS avec une proc SQL .
J'ai un ID , je tri l'ID par ordre croissant . Je veux que la ou les requête(s) SQL me dis(ent) sur la ligne ou je suis , je compare le code sur la ligne du dessus. Si les codes sont identiques alors je reprend comptage en faisant +1.
Au final je placerai mon compteur dans une nouvelle colonne.
Exemple concret :
siret1 personneA 1
siret1 personneB 2
siret1 personneC 3
siret2 personneD 1
siret3 personneE 1
siret4 personneF 1
siret4 personneG 2
siret5 personneH 1
siret6 personneI 1
siret6 personneJ 2
siret6 personneK 3
siret6 personneL 4
Dans une matrice SQL peut on calculer comme sur un tableur excel avec les lignes et colonnes ?
Voici un bricolage que j'ai testé :
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT ROW_NUMBER() OVER (ORDER BY siret) AS ligne , siret , code_personne , nom , prenom , numero_personne # numero_personne est une colonne supplemantaire créé pour le comptage des personnes sur un même code FROM matable IF siret.ROW_NUMBER() = siret.ROW_NUMBER()-1 [numero_personne.ROW_NUMBER()]=[numero_personne.ROW_NUMBER()]+1 ELSE [numero_personne.ROW_NUMBER()]=1 ;
Merci de m'aiguiller.
Partager