1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| /*Exemple de table en entrée*/
data fichier;
input categorie $4. somme_des_points extr2;
cards;
cat1 10 3
cat1 10 5
cat1 43 2
cat1 26 4
cat2 10 9
cat2 10 4
cat2 78 6
;run;
/*Calculer le poids agrégé par catégorie et par somme des points, le diviser
par la somme des poids de la catégorie*/
proc sql;
CREATE TABLE agreg AS
SELECT DISTINCT a.categorie, a.somme_des_points, sum(a.extr2) as eff,
eff_tot, sum(a.extr2)/eff_tot AS pct
FROM fichier a
LEFT JOIN
(SELECT DISTINCT b.categorie, sum(b.extr2) AS eff_tot
FROM fichier b
GROUP BY b.categorie) total
on a.categorie=total.categorie
GROUP BY a.categorie, a.somme_des_points;
quit; |
Partager