Selectionner des moyennes par serveurs dont le nombre peu varier
sriwLiw
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonsoir,
J'ai une table constituée de telle manière : idServer | datetime | valeur1 | valeur2
Je voudrai que la réponse à la requête soit comme ceci :
datetime | valeur1\(valeur1+valeur2) pour serveurA | valeur1\(valeur1+valeur2) pour serveurB | ... pour autant de serveur qu'il existe sur la table.
Je me suis bien creusé la tête mais j'arrive pas à la formuler..
Quelqu'un peut m'aider ?
J'ai une table constituée de telle manière : idServer | datetime | valeur1 | valeur2
Je voudrai que la réponse à la requête soit comme ceci :
datetime | valeur1\(valeur1+valeur2) pour serveurA | valeur1\(valeur1+valeur2) pour serveurB | ... pour autant de serveur qu'il existe sur la table.
Je me suis bien creusé la tête mais j'arrive pas à la formuler..
Quelqu'un peut m'aider ?
A voir également:
- Selectionner des moyennes par serveurs dont le nombre peu varier
- Nombre de jours entre deux dates excel - Guide
- Nombre facile - Télécharger - Outils professionnels
- Selectionner texte sur pdf - Guide
- Comment calculer les moyennes sur excel - Guide
- Serveurs dns - Guide
2 réponses
Bonjour
as tu regardé du côté de GROUP BY ?
as tu regardé du côté de GROUP BY ?
sriwLiw
Mais justement comment créer autant de sortie que de type de serveur différent par tranche de temps, j'arrive pas à formuler cela..
sriwLiw
La seule piste que j'ai pour l'instant c'est faire une première requête pour savoir les idServer qui existe.. mais ça m'arrangerait bien si j'ai la réponse que je veux en une seule fois..
comment créer autant de sortie que de type de serveur différent par tranche de temps,
Ta requête .... avec un Group By .. va te sortir autant de lignes que tu auras de serveur distinct....
As tu essayé au moins ?
Ca donnerait quelque-chose du genre :
SELECT datetime , SUM(valeur1)\(SUM(valeur1)+SUM(valeur2)) as Moyenne FROM tatable GROUP BY serveur,datetime
Mais là ce que j'aurai c'est une moyenne générale sur les deux serveurs, moi ce que je veux c'est : Supposant qu'on a n idServer, Je veux un résultat de ce genre :
datetime | valeur1\(valeur1+valeur2) pour server A | valeur1\(valeur1+valeur2) pour server B | ... et ainsi de suite n fois
Mais j'avoue que je ne sais pas si c'est faisable..
datetime | valeur1\(valeur1+valeur2) pour server A | valeur1\(valeur1+valeur2) pour server B | ... et ainsi de suite n fois
Mais j'avoue que je ne sais pas si c'est faisable..
Oui j'ai essayé mais ce n'est pas ce que je cherche.. Peut être que je me suis mal exprimé
Je ne vois pas pourquoi je dois sommer déjà car le résultat que je cherche est par serveur et non pas une moyenne général
Je veux avoir avoir en sortie autant de colonne que de serveur existant ajoutant à ceci bien sur le datetime
Merci quand même pour tes efforts !
Je ne vois pas pourquoi je dois sommer déjà car le résultat que je cherche est par serveur et non pas une moyenne général
Je veux avoir avoir en sortie autant de colonne que de serveur existant ajoutant à ceci bien sur le datetime
Merci quand même pour tes efforts !
Je veux avoir avoir en sortie autant de colonne que de serveur existant ajoutant à ceci bien sur le datetime
Ah non.. là .. tu auras autant de LIGNES que de serveurs/datetime
Au pire.. essayes en inversant le group by
GROUP BY serveur,datetime
ou
GROUP BY datetime,serveur
Si tu veux le résultat en Colonnes ...vu que tu ne connais pas à l'avance le nombre de serveurs... ça risque de ne pas être possible...
Oui, ce que je compte faire justement et de construire cette requête en php en ayant prélablement récupéré les serveurs existants. Dans ce cas la, j'ai essayé ainsi pour tester avec 2 serveurs mais j'y arrive vraiment pas :
Quelqu'un peut il me corriger cela, ça me donne une infinité de résultats !
SELECT datetime, server1.valeur1/(server1.valeur1+server1.valeur2), server2.valeur1/(server2.valeur1+server2.valeur2) from ma_table, (select valeur1, valeur2 from ma_table where idServer = 'XXXXXX' GROUP BY datetime) AS server1, (select valeur1, valeur2 from ma_table where idServer = 'YYYYYY' GROUP BY datetime) AS server2;
Quelqu'un peut il me corriger cela, ça me donne une infinité de résultats !