Requete sql heure / moyenne / donnee
Résolu
joelindien
-
Siluni -
Siluni -
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';
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 :) -
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 ^^. -