Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/06/2011, 15h45   #1
Membre à l'essai
 
Inscription : juin 2009
Messages : 129
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 129
Points : 20
Points : 20
Par défaut Calcul sur champ table :/

Bonjour à tous,

Depuis ce matin je suis confronté à un problème :

D'abord voici la table qui m'intéresse :

| NOM | Statut |
|---------------------
| Nom1 | up |
| Nom1 | up |
| Nom1 | down |
| Nom1 | up |
| Nom1 | down |
...


J'aimerais récupérer le nombre de statut "up" sur le nombre de statuts total afin d'obtenir un pourcentage, dans l'exemple ci-dessus ça donne :

( up ( 3 ) / total ( 5 ) ) * 100

Je dois traiter un grand nombre de données donc je souhaiterais le faire en une seule requête.

J'ai déjà essayé beaucoup de choses (sous-requêtes...) mais pas moyen d'arriver à ce que je veux.

Si quelqu'un a une idée.


Merci
__sPiKe__ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2011, 16h10   #2
Expert Confirmé
 
Avatar de Maljuna Kris
 
Homme Avcxjo MoKo
Retraité
Inscription : novembre 2005
Messages : 2 530
Détails du profil
Informations personnelles :
Nom : Homme Avcxjo MoKo
Âge : 60

Informations professionnelles :
Activité : Retraité
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : novembre 2005
Messages : 2 530
Points : 3 523
Points : 3 523
Saluton,
Je dirais, pour commencer, regarde ce que te donne cette requête
Code sql :
1
2
3
SELECT Statut, COUNT(*) AS effectif
FROM latable
GROUP BY Statut WITH ROLLUP
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
articles : Comment émuler un tableau croisé [quasi] dynamique
et : Une énigme mathématique résolue avec MySQL
recommande l'utilisation de PDO (PHP5 Data Objects)
Maljuna Kris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2011, 16h49   #3
Membre à l'essai
 
Inscription : juin 2009
Messages : 129
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 129
Points : 20
Points : 20
Oh oh bien joué, ça avance

Code :
1
2
3
4
SELECT TI_Name,IfOperStatus, COUNT(*) AS nb
FROM Interfaces
WHERE TI_Name = 'SWI-PPMU-SCA01' AND IfDescr LIKE '%Ethernet%'
GROUP BY IfOperStatus WITH ROLLUP
Voici le résultat :

Name_________________Status_______________nb

SWI-PPMU-SCA01_______down________________ 9
SWI-PPMU-SCA01________up_________________43
SWI-PPMU-SCA01_______(NULL)______________ 52

Les chiffres 43 et 52 sont bien ceux que je veux récupérer, le 9 semble être la soustraction des deux, et l'on voit un décalage sur le statut :
(NULL) <-> down

Bref ce n'est pas important, ce que je veux surtout c'est récupérer mes valeurs et effectuer l'opération dans ma requête :

( 43 / 52 ) * 100 = le pourcentage que je veux trouver.

Si tu pense connaitre la solution, je suis preneur,

Merci !
__sPiKe__ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2011, 17h21   #4
Expert Confirmé
 
Avatar de Maljuna Kris
 
Homme Avcxjo MoKo
Retraité
Inscription : novembre 2005
Messages : 2 530
Détails du profil
Informations personnelles :
Nom : Homme Avcxjo MoKo
Âge : 60

Informations professionnelles :
Activité : Retraité
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : novembre 2005
Messages : 2 530
Points : 3 523
Points : 3 523
Attention Ti_Name n'est pas dans la clause GROUP BY, ce qui veut dire que si sa valeur n'est pas en dépendance fonctionnelle directe avec IfOperStatus, la valeur retenue sera n'importe laquelle, la première rencontrée dans le groupe par MySQL.
Pour les autres calculs, je pense que tu as intérêt à exploiter ce résultat avec un langage procédural.
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
articles : Comment émuler un tableau croisé [quasi] dynamique
et : Une énigme mathématique résolue avec MySQL
recommande l'utilisation de PDO (PHP5 Data Objects)
Maljuna Kris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 09h10   #5
Membre à l'essai
 
Inscription : juin 2009
Messages : 129
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 129
Points : 20
Points : 20
Ok merci, je pense pouvoir me débrouiller avec ça.

Sujet résolu !
__sPiKe__ est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h40.


 
 
 
 
Partenaires

Hébergement Web