Requete sql heure / moyenne / donnee

Résolu/Fermé
joelindien - 28 oct. 2010 à 11:55
 Siluni - 28 oct. 2010 à 19:34
Bonjour,

Alors voila, je cherche a faire une requete sql me permettant de sortir de ma BD une moyenne de valeur en fonction d'une heure fixe pour toute les heures de la journées (je sais pas si j'ai ete bien clair donc je vais developper)

en gros jai une table prototypée comme suit avec une colonne value, une date et une heure.

value | date | heure

ma colonne value contenant des donnees numeriques

ex :

370 | 2010-10-10 | 22:07:10
450 | 2010-10-11 | 18:08:11

etc....

je cherche a faire une requete me permettant de recuperer la moyenne des valeurs dune journee par heure

ex la moyenne des valeure de 09h de 10h de 18h etc... pour lensemble de la journee

javais une ebauche du type

SELECT AVG(value) FROM 'table' WHERE 'Date' = '2010-10-22' AND -> ici je bloque SUBSTR(Time,1,2)ORDER BY 'Time';

3 réponses

SELECT HOUR(Date), AVG(value)
FROM 'table'
WHERE 'Date' LIKE '2010-10-22%'
GROUP BY HOUR(Date)
ORDER BY Date ASC;

On peut même faire

SELECT DATE_FORMAT(Date, '%Y-%m-%d') AS Day, HOUR(Date) AS heure, AVG(value) AS moyenne
FROM 'table'
GROUP BY YEAR(Date), MONTH(Date), DAY(Date), HOUR(Date)
ORDER BY Date ASC;

Passe la colonne en DATETIME et fusionne date et heure :)
0
Merci pour ton aide ^^,

j'ai trouve finalement tout seul il y'a quelques temps.

Pour ceux que ca interesse :

SELECT 'value' FROM 'table' WHERE 'Date' = '2010-10-22' GROUP BY SUBSTR(Time,1,2);

(ma colonne Time etait deja au format time, donc un substr suffit meme si c'est sale ^^.
0
a la place de SUBSTR => HOUR(Time) fera l'affaire :)
0