Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[sql] calcul de Frequence ( math pas electronique )

2 réponses
Avatar
olivier
bonjour,
j'ai un petit souci,
qui aurait une methode " esthetique " pour calculer une frequence,
explication :
j'ai une table d'environ 3500 enregistrement de 10 champs chacun,
les champs sont tous des valeurs numerique entre 0 et 80 + clef primaire
assuré par une date,
je voudrait donc savoir combien de fois sort le 1; le 2 le 3 etc ( quel
que soit le champ, le comptage se faisant à l'enregistrement).
j'y arrive par une serie de COUNT pas trés jolie....
Si quelqu'un aurait une "belle" solution...

2eme truc,
je cherche aussi une solution "agréable a l'oeil" pour calculer un cycle
d'ecart
en clair savoir quel valeur sort en moyenne tout les combien
d'enregistrement.

Pour info je vais les rentrer dans le module Bd de openoffice ( pas de
commentaire SVP ) ( j'ai la fonction frequence de calc, mais c'est une
question de principe et peut etre vitesse )

merci d'avance.
olivier

2 réponses

Avatar
Antoun
olivier wrote:
bonjour,
j'ai un petit souci,
qui aurait une methode " esthetique " pour calculer une frequence,
explication :
j'ai une table d'environ 3500 enregistrement de 10 champs chacun,
les champs sont tous des valeurs numerique entre 0 et 80 + clef primaire
assuré par une date,
je voudrait donc savoir combien de fois sort le 1; le 2 le 3 etc ( quel
que soit le champ, le comptage se faisant à l'enregistrement).
j'y arrive par une serie de COUNT pas trés jolie....
Si quelqu'un aurait une "belle" solution...



L'idéal serait de changer ta modélisation en qqch comme ça :

DATECLE VALEUR CHAMP
---------------------
1/9/05 45 ch1
1/9/05 78 ch2
1/9/05 22 ch3
...
2/9/05 03 ch1
2/9/05 77 ch2
2/9/05 44 ch3
...

Cela te permet de faire ensuite l'une ou l'autre de ces deux requêtes :


-- si la même valeur apparaît dans ch1 et ch2,
-- elle n'est comptée qu'une fois
Select VALEUR, COUNT(Distinct DATECLE) As FREQUENCE
From TABLE
Group By Valeur

-- si la même valeur apparaît à la fois dans ch1 et ch2
-- à la même date-clé, elle est comptée deux fois
-- (ou bien elle ne peut apparaître deux fois)
Select VALEUR, COUNT(*) As FREQUENCE
From TABLE
Group By Valeur



Pour ton cycle d'écart, je ne sais pas comment cela se calcule, mais je
suis sûr qu'améliorer ta modélisation simplifierait bcp le pb...
Avatar
Antoun
olivier wrote:
bonjour,
j'ai un petit souci,
qui aurait une methode " esthetique " pour calculer une frequence,
explication :
j'ai une table d'environ 3500 enregistrement de 10 champs chacun,
les champs sont tous des valeurs numerique entre 0 et 80 + clef primaire
assuré par une date,
je voudrait donc savoir combien de fois sort le 1; le 2 le 3 etc ( quel
que soit le champ, le comptage se faisant à l'enregistrement).
j'y arrive par une serie de COUNT pas trés jolie....
Si quelqu'un aurait une "belle" solution...



si par contre tu ne peux pas changer ta modélisation, il te faut une
table contenant les entiers des 0 à 80 (j'espère tes valeurs sont
entières au moins ?).

Je suppose que ta table est qqch comme ça :

DATECLE CH1 CH2 CH3 ... CH10
--------------------------...-----
1/9/05 45 78 22 ... 54
...

La table d'entiers serait tout bêtement :

ENTIER
------
1
2
3
...
80


ça te donne ça :

Select E.ENTIER, COUNT(*) As FREQUENCE
From T_ENTIERS E
Inner Join T_TA_TABLE T
On E.ENTIER In (T.CH1, T.CH2, T.CH3 ... T.CH10)
Group By E.ENTIER

à noter que dans le cas où la même valeur apparaisse dans plusieurs
champs à la même date-clé, elle ne sera comptée qu'une seule fois.