|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Membre chevronné
![]() Inscription : août 2010 Messages : 416 ![]() |
Bonjour, j'ai la table suivante
![]() Voila comme c'est visible, ma table contient une colonne date qui m'affiche la date des tests effectués...normalement ma table doit se remplir automatiquement et dans chaque jours j'ai des nouvelles valeurs.. Ce que je dois faire c'est obtenir par la suite la moyenne de chaque jour et la stocker dans une autre table afin de tracer une courbe en fontion de cette moyenne..je n'ai pas trouver comment faire pour prendre la moyenne de chaque jour |
|
|
10
|
|
|
#2 | ||
![]() ![]() ![]() Cédric DuprezInscription : avril 2002 Messages : 3 823 ![]() |
Bonjour,
Il est déconseillé de nommer une colonne avec un mot clé réservé (ici, le mot date). Pour ce qui est de calculer une moyenne, c'est la fonction AVG qui permet de l'obtenir : Code :
__________________
Rédacteur / Modérateur SGBD Mes tutoriels et la FAQ MySQL ---------------------------------------------------- Pensez aux balises code et au tag Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
|
||
|
|
10
|
|
|
#3 |
|
Membre chevronné
![]() Inscription : août 2010 Messages : 416 ![]() |
Ah d'accord, je vais recéer ma table alors
Sinon pour mieux te mettre dans le cadre de mon application , enfet je travaille sur une application qui fait des tests périodiques en temps réel ( chaque 20 min une nouvelle valeur s'ajoute a ma table) donc pour le moment j'affiche un graphe pour un jour donnée ( ftp = f(heure)) et ca marche je veux par la suite afficher une courbe en fonction des jours pour chaque jour une moyenne des tests effectués...... cette requete reste valable? |
|
|
10
|
|
|
#4 |
![]() ![]() ![]() Cédric DuprezInscription : avril 2002 Messages : 3 823 ![]() |
Oui, cette requête donne la valeur moyenne par jour.
ced
__________________
Rédacteur / Modérateur SGBD Mes tutoriels et la FAQ MySQL ---------------------------------------------------- Pensez aux balises code et au tag Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
|
|
|
10
|
|
|
#5 |
|
Membre chevronné
![]() Inscription : août 2010 Messages : 416 ![]() |
D'accord : )
je vais essayer ca maintenant et te mettre au courant |
|
|
10
|
|
|
#6 |
|
Membre chevronné
![]() Inscription : août 2010 Messages : 416 ![]() |
ca marche nickel
Pour le faire maintenant en fonction du mois,est ce que j'utilise la commande left et right pour afficher la moyenne de chaque mois ? Code :
SELECT date ,avg(ftp) FROM ftptable GROUP BY (LEFT(RIGHT(date,5),2); mais celle ci marche je ne sait pas si elle est juste ou non Code :
SELECT date ,avg(ftp) FROM ftptable GROUP BY (LEFT(date,7)); |
|
|
10
|
|
|
#7 |
|
Membre Expert
![]() Inscription : juin 2007 Messages : 2 278 ![]() |
bonjour,
tu peux utiliser la fonction EXTRACT() afin d'extraire le jour, le mois etc d'une date
__________________
Je ne réponds pas aux questions envoyées par mp |
|
|
10
|
|
|
#8 |
![]() ![]() ![]() Cédric DuprezInscription : avril 2002 Messages : 3 823 ![]() |
Si le champ date est bien de type date, alors tu as la fonction MONTH() pour extraire le mois.
Voici le lien vers la doc MySQL pour les fonctions de dates : http://dev.mysql.com/doc/refman/5.0/...functions.html ced
__________________
Rédacteur / Modérateur SGBD Mes tutoriels et la FAQ MySQL ---------------------------------------------------- Pensez aux balises code et au tag Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
|
|
|
10
|
|
|
#9 |
|
Membre chevronné
![]() Inscription : août 2010 Messages : 416 ![]() |
oui il est bien de type date , j'ai essayé extract ca n'a pas marché
|
|
|
10
|
|
|
#10 |
|
Membre chevronné
![]() Inscription : août 2010 Messages : 416 ![]() |
j'ai testé cette commande, normalement elle est juste
Code :
SELECT month(date),avg(ftp) FROM ftptable GROUP BY (month(date) |
|
|
10
|
|
|
#11 |
![]() ![]() ![]() Cédric DuprezInscription : avril 2002 Messages : 3 823 ![]() |
Si le calcul doit se faire avec des données sur plusieurs années, alors un même mois peut réapparaître plusieurs fois. Il faut donc coupler MONTH et YEAR...
Sinon, peut-on avoir un jeu de données pour voir ce qui ne fonctionnerait pas ? ced
__________________
Rédacteur / Modérateur SGBD Mes tutoriels et la FAQ MySQL ---------------------------------------------------- Pensez aux balises code et au tag Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
|
|
|
10
|
|
|
#12 |
|
Membre chevronné
![]() Inscription : août 2010 Messages : 416 ![]() |
pour le moment elle ne contient que des données de ces deux mois
![]() deja pour afficher les jours du mois courant j'i du faire ca Code :
WHERE (month(date)=month(now())) GROUP BY date; |
|
|
10
|
|
|
#13 |
|
Membre chevronné
![]() Inscription : août 2010 Messages : 416 ![]() |
ca a marché pour jour, mais pas pour month et year
ca me genere cette erreur pour le mois: Code :
java.sql.SQLException: Cannot convert value '4' FROM COLUMN 1 TO TIMESTAMP. Code :
java.lang.IllegalArgumentException: The 'year' argument must be IN range 1900 TO 9999. |
|
|
10
|
|
|
#14 | ||
![]() ![]() ![]() Cédric DuprezInscription : avril 2002 Messages : 3 823 ![]() |
Est-ce qu'on peut voir le script de création de la table, affichable avec la commande suivante : ?
Autre question : peut-on avoir le jeu de données sous forme d'INSERT ? Parce que là, c'est fastidieux pour recopier l'image. Au passage, il faut mettre le mot date, dans les requêtes, entre ` (Alt Gr + 7), parce que "date" est un mot-clé réservé (il est d'ailleurs déconseillé de nommer un champ comme ça). Si ce champ est bien de type "date", alors la requête suivante fonctionne (j'ai testé et le résultat obtenu est cohérent avec un court je de données) : Code :
ced
__________________
Rédacteur / Modérateur SGBD Mes tutoriels et la FAQ MySQL ---------------------------------------------------- Pensez aux balises code et au tag Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
|
||
|
|
10
|
|
|
#15 | ||
|
Membre chevronné
![]() Inscription : août 2010 Messages : 416 ![]() |
Voila
Code :
Code :
INSERT INTO ftptable VALUES(now(),now(),debitftp()); |
||
|
|
10
|
|
|
#16 |
![]() ![]() ![]() Cédric DuprezInscription : avril 2002 Messages : 3 823 ![]() |
OK. Donc, le champ "date" est bien de type date.
Du coup, la requête que j'ai proposée devrait fonctionner. Qu'est-ce qui ne passe pas ? ced
__________________
Rédacteur / Modérateur SGBD Mes tutoriels et la FAQ MySQL ---------------------------------------------------- Pensez aux balises code et au tag Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
|
|
|
00
|
|
|
#17 |
|
Membre chevronné
![]() Inscription : août 2010 Messages : 416 ![]() |
lorsque mon champ est de type date , pour recuperer sa valeur en java je dois faire getdate() normalement c'est ca ?
car month(date) retourne une valeur de type int que je peux pas utiliser par la suite, j'ai besoin d'avoir le retour de type date >< |
|
|
10
|
|
|
#18 |
![]() ![]() ![]() Cédric DuprezInscription : avril 2002 Messages : 3 823 ![]() |
Le problème avec les NULL, c'est qu'on ne peut pas deviner à quelle date les rattacher.
Sinon, le type DATE correspond à un jour, un mois et une année... Du coup, difficile (voire impossible) de renvoyer un mois de type DATE, sauf éventuellement à le faire sous la forme 2011-03-01, ce qui revient à fixer arbitrairement le jour (au 1er du mois). C'est ce que tu souhaites ?
__________________
Rédacteur / Modérateur SGBD Mes tutoriels et la FAQ MySQL ---------------------------------------------------- Pensez aux balises code et au tag Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
|
|
|
00
|
|
|
#19 |
|
Membre chevronné
![]() Inscription : août 2010 Messages : 416 ![]() |
normalement je n'aurai plus de null dans ma table ..d'ailleurs je vais les supprimer..
je dois afficher les moyennes pour chaque mois et chaque année.... si c'est obligatoire de fixer un jour...bein il n'ya pas d'autre solution >< |
|
|
10
|
|
|
#20 | |
![]() ![]() ![]() Cédric DuprezInscription : avril 2002 Messages : 3 823 ![]() |
Citation:
ced
__________________
Rédacteur / Modérateur SGBD Mes tutoriels et la FAQ MySQL ---------------------------------------------------- Pensez aux balises code et au tag Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
|
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com