Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 21/06/2012 13:48:44
- damalaan
- Membre
Calculer une fréquence
Soit les valeurs suivantes :
id1;id2;matricule;valeur
293469;19659;11253;39.9
Pour ceux qui connaissent Excel, je cherche à reproduire la fonction matricielle Fréquence(matrice_valeurs;matrice_intervalles)
293470;19659;13207;42.5
293471;19659;5026;37.2
293472;19659;11190;44.5
293473;19659;10460;50.7
293474;19659;11107;45.4
293475;19659;15868;42.2
293476;19659;5084;45.3
293477;19659;5041;46.1
il me faut récupérer le nombre de valeurs par tranches suivantes:
39
40
41
42
43
44
45
pour avoir un résultat :
39 1
40 1
41 0
42 0
43 2
44 0
45 1
ce qui signifie que j'ai une valeur <= à 39, 1 entre dans l'intervalle ]39-40], 0 dans ]40-41] etc jusqu'à 1 dans ]44,45]
pour la partie intervalle, je pense utiliser qqc du genre
select * from generate_series(39,45,1);
Hors ligne
#2 25/06/2012 14:45:06
- Marc Cousin
- Membre
Re : Calculer une fréquence
On peut s'en sortir avec ça:
SELECT lim,
count(id1)
FROM
(select generate_series((select min(valeur) from test)::int,(select max(valeur) from test)::int) lim) as limite
left join test
on (limite.lim<=valeur and limite.lim+1>valeur)
group by lim order by lim;
lim | count
-----+-------
37 | 1
38 | 0
39 | 1
40 | 0
41 | 0
42 | 2
43 | 0
44 | 1
45 | 2
46 | 1
47 | 0
48 | 0
49 | 0
50 | 1
51 | 0
Dernière modification par Marc Cousin (25/06/2012 14:45:26)
Marc.
Hors ligne
Pages : 1